diff --git a/Dockerfile b/Dockerfile index 651a16d7..834dce6c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -34,7 +34,7 @@ RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /et openssl-dev \ bash \ curl \ - openjdk17-jre \ + openjdk21-jre \ su-exec \ shadow \ # Doc conversion diff --git a/Dockerfile-ultra-lite b/Dockerfile-ultra-lite index eed8d783..ea07e62f 100644 --- a/Dockerfile-ultra-lite +++ b/Dockerfile-ultra-lite @@ -31,7 +31,7 @@ RUN mkdir /configs /logs /customFiles && \ curl \ su-exec \ shadow \ - openjdk17-jre && \ + openjdk21-jre && \ echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/main" | tee -a /etc/apk/repositories && \ echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/community" | tee -a /etc/apk/repositories && \ echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing" | tee -a /etc/apk/repositories && \ diff --git a/LocalRunGuide.md b/LocalRunGuide.md index e4f744c3..0c344203 100644 --- a/LocalRunGuide.md +++ b/LocalRunGuide.md @@ -14,7 +14,7 @@ You could theoretically use a Distrobox/Toolbox, if your Distribution has old or Install the following software, if not already installed: -- Java 17 or later +- Java 17 or later (21 recommended) - Gradle 7.0 or later (included within repo so not needed on server) @@ -42,19 +42,19 @@ For Debian-based systems, you can use the following command: ```bash sudo apt-get update -sudo apt-get install -y git automake autoconf libtool libleptonica-dev pkg-config zlib1g-dev make g++ openjdk-17-jdk python3 python3-pip +sudo apt-get install -y git automake autoconf libtool libleptonica-dev pkg-config zlib1g-dev make g++ openjdk-21-jdk python3 python3-pip ``` For Fedora-based systems use this command: ```bash -sudo dnf install -y git automake autoconf libtool leptonica-devel pkg-config zlib-devel make gcc-c++ java-17-openjdk python3 python3-pip +sudo dnf install -y git automake autoconf libtool leptonica-devel pkg-config zlib-devel make gcc-c++ java-21-openjdk python3 python3-pip ``` For non-root users with Nix Package Manager, use the following command: ```bash nix-channel --update -nix-env -iA nixpkgs.jdk17 nixpkgs.git nixpkgs.python38 nixpkgs.gnumake nixpkgs.libgcc nixpkgs.automake nixpkgs.autoconf nixpkgs.libtool nixpkgs.pkg-config nixpkgs.zlib nixpkgs.leptonica +nix-env -iA nixpkgs.jdk21 nixpkgs.git nixpkgs.python38 nixpkgs.gnumake nixpkgs.libgcc nixpkgs.automake nixpkgs.autoconf nixpkgs.libtool nixpkgs.pkg-config nixpkgs.zlib nixpkgs.leptonica ``` ### Step 2: Clone and Build jbig2enc (Only required for certain OCR functionality) diff --git a/src/main/java/stirling/software/SPDF/config/security/UserBasedRateLimitingFilter.java b/src/main/java/stirling/software/SPDF/config/security/UserBasedRateLimitingFilter.java index 89107697..b4b88d25 100644 --- a/src/main/java/stirling/software/SPDF/config/security/UserBasedRateLimitingFilter.java +++ b/src/main/java/stirling/software/SPDF/config/security/UserBasedRateLimitingFilter.java @@ -1,6 +1,5 @@ package stirling.software.SPDF.config.security; -import io.github.pixee.security.Newlines; import java.io.IOException; import java.time.Duration; import java.util.Map; @@ -21,6 +20,7 @@ import io.github.bucket4j.Bandwidth; import io.github.bucket4j.Bucket; import io.github.bucket4j.ConsumptionProbe; import io.github.bucket4j.Refill; +import io.github.pixee.security.Newlines; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; @@ -126,12 +126,16 @@ public class UserBasedRateLimitingFilter extends OncePerRequestFilter { ConsumptionProbe probe = userBucket.tryConsumeAndReturnRemaining(1); if (probe.isConsumed()) { - response.setHeader("X-Rate-Limit-Remaining", Newlines.stripAll(Long.toString(probe.getRemainingTokens()))); + response.setHeader( + "X-Rate-Limit-Remaining", + Newlines.stripAll(Long.toString(probe.getRemainingTokens()))); filterChain.doFilter(request, response); } else { long waitForRefill = probe.getNanosToWaitForRefill() / 1_000_000_000; response.setStatus(HttpStatus.TOO_MANY_REQUESTS.value()); - response.setHeader("X-Rate-Limit-Retry-After-Seconds", Newlines.stripAll(String.valueOf(waitForRefill))); + response.setHeader( + "X-Rate-Limit-Retry-After-Seconds", + Newlines.stripAll(String.valueOf(waitForRefill))); response.getWriter().write("Rate limit exceeded for POST requests."); } } diff --git a/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java b/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java index 9fa357f7..3f880a80 100644 --- a/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java +++ b/src/main/java/stirling/software/SPDF/controller/api/converters/ConvertImgPDFController.java @@ -36,7 +36,7 @@ public class ConvertImgPDFController { description = "This endpoint converts a PDF file to image(s) with the specified image format, color type, and DPI. Users can choose to get a single image or multiple images. Input:PDF Output:Image Type:SI-Conditional") public ResponseEntity convertToImage(@ModelAttribute ConvertToImageRequest request) - throws IOException { + throws NumberFormatException, Exception { MultipartFile file = request.getFileInput(); String imageFormat = request.getImageFormat(); String singleOrMultiple = request.getSingleOrMultiple(); @@ -56,23 +56,20 @@ public class ConvertImgPDFController { String filename = Filenames.toSimpleFileName(file.getOriginalFilename()) .replaceFirst("[.][^.]+$", ""); - try { - result = - PdfUtils.convertFromPdf( - pdfBytes, - imageFormat.toUpperCase(), - colorTypeResult, - singleImage, - Integer.valueOf(dpi), - filename); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + + result = + PdfUtils.convertFromPdf( + pdfBytes, + imageFormat.toUpperCase(), + colorTypeResult, + singleImage, + Integer.valueOf(dpi), + filename); + + if(result == null || result.length == 0) { + logger.error("resultant bytes for {} is null, error converting ", filename); + } if (singleImage) { String docName = filename + "." + imageFormat; MediaType mediaType = MediaType.parseMediaType(getMediaType(imageFormat)); diff --git a/src/main/resources/messages_ar_AR.properties b/src/main/resources/messages_ar_AR.properties index c6119110..175ee607 100644 --- a/src/main/resources/messages_ar_AR.properties +++ b/src/main/resources/messages_ar_AR.properties @@ -69,7 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor - +info=Info ############### @@ -102,12 +102,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=تحويل -navbar.security=الأمان -navbar.other=أخرى +navbar.favorite=Favorites navbar.darkmode=الوضع الداكن -navbar.pageOps=عمليات الصفحة +navbar.language=Languages navbar.settings=إعدادات +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +748,7 @@ extractImages.submit=استخراج fileToPDF.title=ملف إلى PDF fileToPDF.header=تحويل أي ملف إلى PDF fileToPDF.credit=تستخدم هذه الخدمة ليبر أوفيس وأونوكونف لتحويل الملفات. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=يجب أن تتضمن أنواع الملفات المدعومة ما يلي ولكن للحصول على قائمة محدثة كاملة بالتنسيقات المدعومة ، يرجى الرجوع إلى وثائق LibreOffice fileToPDF.submit=تحويل إلى PDF @@ -794,7 +801,7 @@ pdfOrganiser.placeholder=(e.g. 1,3,2 or 4-8,2,10-12 or 2n-1) #multiTool multiTool.title=أداة متعددة PDF multiTool.header=أداة متعددة PDF -multiTool.uploadPrompts=Please Upload PDF +multiTool.uploadPrompts=File Name #view pdf viewPdf.title=View PDF diff --git a/src/main/resources/messages_bg_BG.properties b/src/main/resources/messages_bg_BG.properties index 55446cee..60fb5220 100644 --- a/src/main/resources/messages_bg_BG.properties +++ b/src/main/resources/messages_bg_BG.properties @@ -69,6 +69,8 @@ visitGithub=Посетете Github Repository donate=Направете дарение color=Цвят sponsor=Спонсор +info=Info + @@ -102,12 +104,18 @@ pipelineOptions.validateButton=Валидирай ############# # NAVBAR # ############# -navbar.convert=Преобразуване -navbar.security=Сигурност -navbar.other=Разни +navbar.favorite=Favorites navbar.darkmode=Тъмна тема -navbar.pageOps=Операции със страници +navbar.language=Languages navbar.settings=Настройки +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +750,7 @@ extractImages.submit=Извличане fileToPDF.title=Файл към PDF fileToPDF.header=Конвертирайте всеки файл към PDF fileToPDF.credit=Тази услуга използва LibreOffice и Unoconv за преобразуване на файлове. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Поддържаните типове файлове трябва да включват по-долу, но за пълен актуализиран списък на поддържаните формати, моля, вижте документацията на LibreOffice fileToPDF.submit=Преобразуване към PDF @@ -794,7 +803,8 @@ pdfOrganiser.placeholder=(напр. 1,3,2 или 4-8,2,10-12 или 2n-1) #multiTool multiTool.title=PDF Мулти инструмент multiTool.header=PDF Мулти инструмент -multiTool.uploadPrompts=Моля качете PDF +multiTool.uploadPrompts=File Name + #view pdf viewPdf.title=Преглед на PDF diff --git a/src/main/resources/messages_ca_CA.properties b/src/main/resources/messages_ca_CA.properties index 41f4f662..9c4451a0 100644 --- a/src/main/resources/messages_ca_CA.properties +++ b/src/main/resources/messages_ca_CA.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Converteix -navbar.security=Seguretat -navbar.other=Altres +navbar.favorite=Favorites navbar.darkmode=Mode Fosc -navbar.pageOps=Operacions de Pàgina +navbar.language=Languages navbar.settings=Opcions +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Extreu fileToPDF.title=Arxiu a PDF fileToPDF.header=Converteix arxiu a PDF fileToPDF.credit=Utilitza LibreOffice i Unoconv per a la conversió. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Els tipus de fitxers admesos haurien d'incloure el següent, però per obtenir una llista completa actualitzada dels formats compatibles, consulteu la documentació de LibreOffice fileToPDF.submit=Converteix a PDF diff --git a/src/main/resources/messages_de_DE.properties b/src/main/resources/messages_de_DE.properties index 6cbd3a29..19a82fce 100644 --- a/src/main/resources/messages_de_DE.properties +++ b/src/main/resources/messages_de_DE.properties @@ -69,6 +69,7 @@ visitGithub=GitHub-Repository besuchen donate=Spenden color=Farbe sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validieren ############# # NAVBAR # ############# -navbar.convert=Konvertieren -navbar.security=Sicherheit -navbar.other=Anderes +navbar.favorite=Favorites navbar.darkmode=Dunkler Modus -navbar.pageOps=Seitenoperationen +navbar.language=Languages navbar.settings=Einstellungen +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Extrahieren fileToPDF.title=Datei in PDF fileToPDF.header=Beliebige Dateien in PDF konvertieren fileToPDF.credit=Dieser Dienst verwendet LibreOffice und Unoconv für die Dateikonvertierung. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Unterstützte Dateitypen sollten die folgenden enthalten, eine vollständige aktualisierte Liste der unterstützten Formate finden Sie jedoch in der LibreOffice-Dokumentation fileToPDF.submit=In PDF konvertieren diff --git a/src/main/resources/messages_el_GR.properties b/src/main/resources/messages_el_GR.properties index e4d2537c..b093516f 100644 --- a/src/main/resources/messages_el_GR.properties +++ b/src/main/resources/messages_el_GR.properties @@ -69,6 +69,7 @@ visitGithub=Επισκεφθείτε το Αποθετήριο του Github donate=Δωρισε color=Χρώμα sponsor=Yποστηρικτής +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Επικυρώνω ############# # NAVBAR # ############# -navbar.convert=Μετατροπή -navbar.security=Ασφάλεια -navbar.other=Διάφορα +navbar.favorite=Favorites navbar.darkmode=Μαύρο Θέμα -navbar.pageOps=Λειτουργίες σελίδας +navbar.language=Languages navbar.settings=Ρυθμίσεις +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Εξαγωγή fileToPDF.title=Αρχείο σε PDF fileToPDF.header=Μετατροπή οποιουδήποτε αρχείου σε PDF fileToPDF.credit=Αυτή η υπηρεσία χρησιμοποιεί LibreOffice και Unoconv για την μετατροπή των αρχείων. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Οι υποστηριζόμενοι τύποι αρχείων θα πρέπει να περιλαμβάνουν τα παρακάτω, ωστόσο, για μια πλήρη ενημερωμένη λίστα με τις υποστηριζόμενες μορφές, ανατρέξτε στην τεκμηρίωση του LibreOffice fileToPDF.submit=Μετατροπή σε PDF diff --git a/src/main/resources/messages_en_GB.properties b/src/main/resources/messages_en_GB.properties index 6189f56b..aa0c4d69 100644 --- a/src/main/resources/messages_en_GB.properties +++ b/src/main/resources/messages_en_GB.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Convert -navbar.security=Security -navbar.other=Miscellaneous +navbar.favorite=Favorites navbar.darkmode=Dark Mode -navbar.pageOps=Page Operations +navbar.language=Languages navbar.settings=Settings +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Extract fileToPDF.title=File to PDF fileToPDF.header=Convert any file to PDF fileToPDF.credit=This service uses LibreOffice and Unoconv for file conversion. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Supported file types should include the below however for a full updated list of supported formats, please refer to the LibreOffice documentation fileToPDF.submit=Convert to PDF @@ -794,7 +802,7 @@ pdfOrganiser.placeholder=(e.g. 1,3,2 or 4-8,2,10-12 or 2n-1) #multiTool multiTool.title=PDF Multi Tool multiTool.header=PDF Multi Tool -multiTool.uploadPrompts=Please Upload PDF +multiTool.uploadPrompts=File Name #view pdf viewPdf.title=View PDF diff --git a/src/main/resources/messages_en_US.properties b/src/main/resources/messages_en_US.properties index 2ecaa2e8..66c2b4bd 100644 --- a/src/main/resources/messages_en_US.properties +++ b/src/main/resources/messages_en_US.properties @@ -69,7 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor - +info=Info ############### @@ -102,12 +102,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Convert -navbar.security=Security -navbar.other=Miscellaneous +navbar.favorite=Favorites navbar.darkmode=Dark Mode -navbar.pageOps=Page Operations +navbar.language=Languages navbar.settings=Settings +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -330,7 +336,7 @@ home.scalePages.title=Adjust page size/scale home.scalePages.desc=Change the size/scale of a page and/or its contents. scalePages.tags=resize,modify,dimension,adapt -home.pipeline.title=Pipeline (Advanced) +home.pipeline.title=Pipeline home.pipeline.desc=Run multiple actions on PDFs by defining pipeline scripts pipeline.tags=automate,sequence,scripted,batch-process @@ -382,7 +388,7 @@ home.extractPage.desc=Extracts select pages from PDF extractPage.tags=extract -home.PdfToSinglePage.title=PDF to Single Large Page +home.PdfToSinglePage.title=Single Large Page home.PdfToSinglePage.desc=Merges all PDF pages into one large single page PdfToSinglePage.tags=single page @@ -742,6 +748,7 @@ extractImages.submit=Extract fileToPDF.title=File to PDF fileToPDF.header=Convert any file to PDF fileToPDF.credit=This service uses LibreOffice and Unoconv for file conversion. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Supported file types should include the below however for a full updated list of supported formats, please refer to the LibreOffice documentation fileToPDF.submit=Convert to PDF @@ -794,7 +801,7 @@ pdfOrganiser.placeholder=(e.g. 1,3,2 or 4-8,2,10-12 or 2n-1) #multiTool multiTool.title=PDF Multi Tool multiTool.header=PDF Multi Tool -multiTool.uploadPrompts=Please Upload PDF +multiTool.uploadPrompts=File Name #view pdf viewPdf.title=View PDF diff --git a/src/main/resources/messages_es_ES.properties b/src/main/resources/messages_es_ES.properties index 275bf1d1..4cb6360a 100644 --- a/src/main/resources/messages_es_ES.properties +++ b/src/main/resources/messages_es_ES.properties @@ -69,6 +69,10 @@ visitGithub=Visitar Repositorio de Github donate=Donar color=Color sponsor=Patrocinador +info=Info + + + @@ -102,12 +106,18 @@ pipelineOptions.validateButton=Validar ############# # NAVBAR # ############# -navbar.convert=Convertir -navbar.security=Seguridad -navbar.other=Otro +navbar.favorite=Favorites navbar.darkmode=Modo oscuro -navbar.pageOps=Operaciones de página +navbar.language=Languages navbar.settings=Configuración +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +752,7 @@ extractImages.submit=Extraer fileToPDF.title=Archivo a PDF fileToPDF.header=Convertir cualquier archivo a PDF fileToPDF.credit=Este servicio usa LibreOffice y Unoconv para la conversión de archivos +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Los tipos de archivo soportados deben incluir los indicados a continuación; sin embargo, para una completa y acutualizada lista de formatos soportados, por favor consulte la documentación de LibreOffice fileToPDF.submit=Convertir a PDF diff --git a/src/main/resources/messages_eu_ES.properties b/src/main/resources/messages_eu_ES.properties index c9337e03..285d41c5 100644 --- a/src/main/resources/messages_eu_ES.properties +++ b/src/main/resources/messages_eu_ES.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Bihurtu -navbar.security=Segurtasuna -navbar.other=Beste bat +navbar.favorite=Favorites navbar.darkmode=Modu iluna -navbar.pageOps=Orrialde-eragiketak +navbar.language=Languages navbar.settings=Ezarpenak +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Atera fileToPDF.title=Fitxategia PDF bihurtu fileToPDF.header=Edozein fitxategi PDF bihurtu fileToPDF.credit=Zerbitzu honek LibreOffice eta Unoconv erabiltzen ditu fitxategiak bihurtzeko +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Jasandako fitxategi-motek behekoak barne hartu behar dituzte; hala ere, jasandako formatuen zerrenda osoa eta eguneratua izateko, kontsultatu, mesedez, LibreOffice-en dokumentazioa fileToPDF.submit=PDF bihurtu diff --git a/src/main/resources/messages_fr_FR.properties b/src/main/resources/messages_fr_FR.properties index 06068ffc..e3abadef 100644 --- a/src/main/resources/messages_fr_FR.properties +++ b/src/main/resources/messages_fr_FR.properties @@ -69,7 +69,7 @@ visitGithub=Visiter le dépôt Github donate=Faire un don color=Couleur sponsor=Sponsor - +info=Info ############### @@ -102,12 +102,18 @@ pipelineOptions.validateButton=Valider ############# # NAVBAR # ############# -navbar.convert=Convertir -navbar.security=Sécurité -navbar.other=Autre +navbar.favorite=Favorites navbar.darkmode=Mode sombre -navbar.pageOps=Opérations sur les pages +navbar.language=Languages navbar.settings=Paramètres +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +748,7 @@ extractImages.submit=Extraire fileToPDF.title=Fichier en PDF fileToPDF.header=Convertir un fichier en PDF fileToPDF.credit=Ce service utilise LibreOffice et Unoconv pour la conversion de fichiers. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Les types de fichiers pris en charge doivent inclure les éléments ci-dessous, mais pour une liste complète et mise à jour des formats pris en charge, veuillez vous reporter à la documentation de LibreOffice. fileToPDF.submit=Convertir diff --git a/src/main/resources/messages_hi_IN.properties b/src/main/resources/messages_hi_IN.properties index 9bcddca1..f91d4900 100644 --- a/src/main/resources/messages_hi_IN.properties +++ b/src/main/resources/messages_hi_IN.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=कनवर्ट -navbar.security=सुरक्षा -navbar.other=विविध +navbar.favorite=Favorites navbar.darkmode=डार्क मोड -navbar.pageOps=पेज कार्य +navbar.language=Languages navbar.settings=सेटिंग्स +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=निकालें fileToPDF.title=फ़ाइल से पीडीएफ़ fileToPDF.header=किसी भी फ़ाइल को पीडीएफ़ में बदलें fileToPDF.credit=यह सेवा फ़ाइल परिवर्तन के लिए LibreOffice और Unoconv का उपयोग करती है। +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=समर्थित फ़ाइल प्रकार नीचे दिए गए होने चाहिए हालांकि समर्थित प्रारूपों की पूरी अद्यतन सूची के लिए कृपया LibreOffice दस्तावेज़ीकरण से संदर्भित करें fileToPDF.submit=पीडीएफ़ में बदलें diff --git a/src/main/resources/messages_hu_HU.properties b/src/main/resources/messages_hu_HU.properties index 625e8b23..e05a1598 100644 --- a/src/main/resources/messages_hu_HU.properties +++ b/src/main/resources/messages_hu_HU.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Átalakítás -navbar.security=Biztonság -navbar.other=Egyéb +navbar.favorite=Favorites navbar.darkmode=Sötét mód -navbar.pageOps=Lap műveletek +navbar.language=Languages navbar.settings=Beállítások +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Kinyerés fileToPDF.title=Fájl PDF dokumentummá alakítása fileToPDF.header=Konvertáljon bármilyen fájlt PDF dokumentummá fileToPDF.credit=Ez a szolgáltatás a LibreOffice-t és az Unoconv-ot használja a fájlkonverzióhoz. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=A funkció az alábbi fájltípusokat támogatja, azonban a teljesen friss támogatott formátumok listájáért kérjük, tekintse meg a LibreOffice dokumentációját fileToPDF.submit=Konvertálás PDF dokumentummá diff --git a/src/main/resources/messages_id_ID.properties b/src/main/resources/messages_id_ID.properties index fd5c3e31..9a8d04f6 100644 --- a/src/main/resources/messages_id_ID.properties +++ b/src/main/resources/messages_id_ID.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Konversi -navbar.security=Keamanan -navbar.other=Lain-lain +navbar.favorite=Favorites navbar.darkmode=Mode Gelap -navbar.pageOps=Operasi Halaman +navbar.language=Languages navbar.settings=Pengaturan +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Ekstrak fileToPDF.title=Berkas ke PDF fileToPDF.header=Mengonversi berkas apa pun ke PDF fileToPDF.credit=Layanan ini menggunakan LibreOffice dan Unoconv untuk konversi berkas. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Jenis berkas yang didukung harus mencakup yang di bawah ini, namun untuk daftar lengkap format yang didukung, silakan lihat dokumentasi LibreOffice fileToPDF.submit=Konversi ke PDF diff --git a/src/main/resources/messages_it_IT.properties b/src/main/resources/messages_it_IT.properties index e22addfe..775e70b7 100644 --- a/src/main/resources/messages_it_IT.properties +++ b/src/main/resources/messages_it_IT.properties @@ -69,6 +69,7 @@ visitGithub=Visita il repository Github donate=Donazione color=Colore sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Convalidare ############# # NAVBAR # ############# -navbar.convert=Converti -navbar.security=Sicurezza -navbar.other=Altro +navbar.favorite=Favorites navbar.darkmode=Modalità Scura -navbar.pageOps=Modifica pagine +navbar.language=Languages navbar.settings=Impostazioni +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Estrai fileToPDF.title=Converti file in PDF fileToPDF.header=Converti qualsiasi file in PDF fileToPDF.credit=Questo servizio utilizza LibreOffice e Unoconv per la conversione dei file. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=I formati file supportati dovrebbero includere quelli sottostanti. Tuttavia, per una lista aggiornata controlla la documentazione di LibreOffice fileToPDF.submit=Converti in PDF diff --git a/src/main/resources/messages_ja_JP.properties b/src/main/resources/messages_ja_JP.properties index 9f981333..7c210c59 100644 --- a/src/main/resources/messages_ja_JP.properties +++ b/src/main/resources/messages_ja_JP.properties @@ -69,6 +69,7 @@ visitGithub=Githubリポジトリを訪問する donate=寄付する color=色 sponsor=スポンサー +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=検証 ############# # NAVBAR # ############# -navbar.convert=変換 -navbar.security=セキュリティ -navbar.other=その他 +navbar.favorite=Favorites navbar.darkmode=ダークモード -navbar.pageOps=ページ操作 +navbar.language=Languages navbar.settings=設定 +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=抽出 fileToPDF.title=ファイルをPDFに変換 fileToPDF.header=あらゆるファイルをPDFに変換 fileToPDF.credit=本サービスはファイル変換にLibreOfficeとUnoconvを使用しています。 +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=サポートされるファイル形式には以下が含まれますが、完全な更新リストについてはLibreOfficeのドキュメントを参照してください。 fileToPDF.submit=PDFを変換 diff --git a/src/main/resources/messages_ko_KR.properties b/src/main/resources/messages_ko_KR.properties index da011ec6..ddc77b39 100644 --- a/src/main/resources/messages_ko_KR.properties +++ b/src/main/resources/messages_ko_KR.properties @@ -57,6 +57,8 @@ usernameExistsMessage=새 사용자명이 이미 존재합니다. invalidUsernameMessage=사용자 이름이 잘못되었습니다. 사용자 이름에는 알파벳 문자와 숫자만 포함되어야 합니다. deleteCurrentUserMessage=현재 로그인한 사용자를 삭제할 수 없습니다. deleteUsernameExistsMessage=사용자 이름이 존재하지 않으며 삭제할 수 없습니다. + +info=Info downgradeCurrentUserMessage=현재 사용자의 역할을 다운그레이드할 수 없습니다 downgradeCurrentUserLongMessage=현재 사용자의 역할을 다운그레이드할 수 없습니다. 따라서 현재 사용자는 표시되지 않습니다. error=오류 @@ -102,12 +104,18 @@ pipelineOptions.validateButton=확인 ############# # NAVBAR # ############# -navbar.convert=변환 -navbar.security=보안 -navbar.other=기타 +navbar.favorite=Favorites navbar.darkmode=다크 모드 -navbar.pageOps=페이지 편집 +navbar.language=Languages navbar.settings=설정 +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +750,7 @@ extractImages.submit=추출 fileToPDF.title=File to PDF fileToPDF.header=다양한 파일을 PDF로 변환 fileToPDF.credit=이 서비스는 파일 변환에 LibreOffice와 Unoconv를 사용합니다. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=지원되는 파일 형식은 아래와 같습니다. 지원되는 형식의 전체 업데이트 목록은 LibreOffice 설명서를 참조합니다. fileToPDF.submit=PDF로 변환 diff --git a/src/main/resources/messages_nl_NL.properties b/src/main/resources/messages_nl_NL.properties index cbbf7b43..d4cbbcf0 100644 --- a/src/main/resources/messages_nl_NL.properties +++ b/src/main/resources/messages_nl_NL.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Valideren ############# # NAVBAR # ############# -navbar.convert=Converteren -navbar.security=Beveiliging -navbar.other=Overige +navbar.favorite=Favorites navbar.darkmode=Donkere modus -navbar.pageOps=Pagina bewerkingen +navbar.language=Languages navbar.settings=Instellingen +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Extraheer fileToPDF.title=Bestand naar PDF fileToPDF.header=Zet elk bestand om naar PDF fileToPDF.credit=Deze service gebruikt LibreOffice en Unoconv voor bestandsconversie. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Ondersteunde bestandstypen zijn hieronder opgenomen, maar raadpleeg voor een volledige lijst met ondersteunde formaten de LibreOffice-documentatie fileToPDF.submit=Omzetten naar PDF diff --git a/src/main/resources/messages_pl_PL.properties b/src/main/resources/messages_pl_PL.properties index 757647ee..50c22dd7 100644 --- a/src/main/resources/messages_pl_PL.properties +++ b/src/main/resources/messages_pl_PL.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Konwertuj -navbar.security=Bezpieczeństwo -navbar.other=Inne +navbar.favorite=Favorites navbar.darkmode=Tryb nocny -navbar.pageOps=Strony +navbar.language=Languages navbar.settings=Ustawienia +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Wyodrębnij fileToPDF.title=Plik na PDF fileToPDF.header=Konwertuj dowolny plik na dokument PDF fileToPDF.credit=Ta usługa używa LibreOffice i Unoconv do konwersji plików. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Obsługiwane typy plików powinny być zgodne z poniższymi, jednak pełną zaktualizowaną listę obsługiwanych formatów można znaleźć w dokumentacji LibreOffice fileToPDF.submit=Konwertuj na PDF diff --git a/src/main/resources/messages_pt_BR.properties b/src/main/resources/messages_pt_BR.properties index 97ac151e..7a029978 100644 --- a/src/main/resources/messages_pt_BR.properties +++ b/src/main/resources/messages_pt_BR.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Converter -navbar.security=Segurança -navbar.other=Outro +navbar.favorite=Favorites navbar.darkmode=Modo Escuro -navbar.pageOps=Operações de página +navbar.language=Languages navbar.settings=Configurações +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Extrair fileToPDF.title=Arquivo para PDF fileToPDF.header=Converter Qualquer Arquivo para PDF fileToPDF.credit=Este serviço usa o LibreOffice e o Unoconv para conversão de arquivos. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Os tipos de arquivo suportados devem incluir os listados abaixo. No entanto, para obter uma lista atualizada completa dos formatos suportados, consulte a documentação do LibreOffice. fileToPDF.submit=Converter para PDF diff --git a/src/main/resources/messages_pt_PT.properties b/src/main/resources/messages_pt_PT.properties index fcde52ad..f814f1a7 100644 --- a/src/main/resources/messages_pt_PT.properties +++ b/src/main/resources/messages_pt_PT.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validar ############# # NAVBAR # ############# -navbar.convert=Converter -navbar.security=Segurança -navbar.other=Outro +navbar.favorite=Favorites navbar.darkmode=Modo Escuro -navbar.pageOps=Operações de página +navbar.language=Languages navbar.settings=Configurações +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Extrair fileToPDF.title=Ficheiro para PDF fileToPDF.header=Converter Qualquer ficheiro para PDF fileToPDF.credit=Este serviço usa o LibreOffice e o Unoconv para conversão de ficheiros. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Os tipos de ficheiro suportados devem incluir os listados abaixo. No entanto, para obter uma lista atualizada completa dos formatos suportados, consulte a documentação do LibreOffice. fileToPDF.submit=Converter para PDF diff --git a/src/main/resources/messages_ro_RO.properties b/src/main/resources/messages_ro_RO.properties index 1f3daca5..382b1760 100644 --- a/src/main/resources/messages_ro_RO.properties +++ b/src/main/resources/messages_ro_RO.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Converteste -navbar.security=Securitate -navbar.other=Altele +navbar.favorite=Favorites navbar.darkmode=Mod întunecat -navbar.pageOps=Operații pe pagină +navbar.language=Languages navbar.settings=Setări +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Extrage fileToPDF.title=Fișier în PDF fileToPDF.header=Convertiți orice fișier în PDF fileToPDF.credit=Acest serviciu utilizează LibreOffice și Unoconv pentru conversia fișierelor. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Tipurile de fișiere suportate ar trebui să includă cele de mai jos. Pentru o listă completă și actualizată a formatelor suportate, consultați documentația LibreOffice. fileToPDF.submit=Convertiți în PDF diff --git a/src/main/resources/messages_ru_RU.properties b/src/main/resources/messages_ru_RU.properties index 4517e100..38d51610 100644 --- a/src/main/resources/messages_ru_RU.properties +++ b/src/main/resources/messages_ru_RU.properties @@ -57,6 +57,7 @@ usernameExistsMessage=Новое имя пользователя уже суще invalidUsernameMessage=Недопустимое имя пользователя, Имя пользователя должно содержать только буквы алфавита и цифры. deleteCurrentUserMessage=Невозможно удалить пользователя, вошедшего в систему. deleteUsernameExistsMessage=Имя пользователя не существует и не может быть удалено. +info=Info downgradeCurrentUserMessage=Невозможно понизить роль текущего пользователя downgradeCurrentUserLongMessage=Невозможно понизить роль текущего пользователя. Следовательно, текущий пользователь не будет отображаться. error=Ошибка @@ -72,6 +73,7 @@ sponsor=Спонсор + ############### # Pipeline # ############### @@ -102,12 +104,18 @@ pipelineOptions.validateButton=Проверить ############# # NAVBAR # ############# -navbar.convert=Конвертировать -navbar.security=Безопасность -navbar.other=Другое +navbar.favorite=Favorites navbar.darkmode=Темный режим -navbar.pageOps=Операции с страницей +navbar.language=Languages navbar.settings=Настройки +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +750,7 @@ extractImages.submit=Извлечь fileToPDF.title=Файл в PDF fileToPDF.header=Конвертировать любой файл в PDF fileToPDF.credit=Этот сервис использует LibreOffice и Unoconv для преобразования файлов. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Поддерживаемые типы файлов должны включать приведенные ниже, однако полный обновленный список поддерживаемых форматов см. в документации LibreOffice. fileToPDF.submit=Преобразовать в PDF diff --git a/src/main/resources/messages_sr_LATN_RS.properties b/src/main/resources/messages_sr_LATN_RS.properties index 708dc2d8..a200e591 100644 --- a/src/main/resources/messages_sr_LATN_RS.properties +++ b/src/main/resources/messages_sr_LATN_RS.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Proveri ############# # NAVBAR # ############# -navbar.convert=Konvertuj -navbar.security=Bezbednost -navbar.other=Razno +navbar.favorite=Favorites navbar.darkmode=Tamni režim -navbar.pageOps=Operacije stranice +navbar.language=Languages navbar.settings=Podešavanja +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Izdvajanje fileToPDF.title=Fajl u PDF fileToPDF.header=Konvertuj bilo koji fajl u PDF fileToPDF.credit=Ova usluga koristi LibreOffice i Unoconv za konverziju fajla. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Podržani tipovi fajlova bi trebali uključivati navedeno, ali za punu ažuriranu listu podržanih formata, molimo pogledajte LibreOffice dokumentaciju fileToPDF.submit=Konvertuj u PDF diff --git a/src/main/resources/messages_sv_SE.properties b/src/main/resources/messages_sv_SE.properties index f621c73c..6120e96d 100644 --- a/src/main/resources/messages_sv_SE.properties +++ b/src/main/resources/messages_sv_SE.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Validate ############# # NAVBAR # ############# -navbar.convert=Konvertera -navbar.security=Säkerhet -navbar.other=Annat +navbar.favorite=Favorites navbar.darkmode=Mörkt läge -navbar.pageOps=Sidoperationer +navbar.language=Languages navbar.settings=Inställningar +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Extrahera fileToPDF.title=Fil till PDF fileToPDF.header=Konvertera valfri fil till PDF fileToPDF.credit=Denna tjänst använder LibreOffice och Unoconv för filkonvertering. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Filtyper som stöds bör inkludera nedanstående men för en fullständig uppdaterad lista över format som stöds, se LibreOffice-dokumentationen fileToPDF.submit=Konvertera till PDF diff --git a/src/main/resources/messages_tr_TR.properties b/src/main/resources/messages_tr_TR.properties index 8484e555..e0475f25 100644 --- a/src/main/resources/messages_tr_TR.properties +++ b/src/main/resources/messages_tr_TR.properties @@ -68,6 +68,7 @@ seeDockerHub=Docker Hub'a bakın visitGithub=Github Deposunu Ziyaret Edin donate=Bağış Yapın color=Renk +info=Info sponsor=Bağış @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Doğrula ############# # NAVBAR # ############# -navbar.convert=Dönüştür -navbar.security=Güvenlik -navbar.other=Çeşitli +navbar.favorite=Favorites navbar.darkmode=Karanlık Mod -navbar.pageOps=Sayfa İşlemleri +navbar.language=Languages navbar.settings=Ayarlar +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Çıkar fileToPDF.title=Dosyadan PDF'e fileToPDF.header=Herhangi bir dosyayı PDF'e dönüştür fileToPDF.credit=Bu hizmet dosya dönüşümü için LibreOffice ve Unoconv'u kullanır. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Desteklenen dosya türleri aşağıdakileri içermelidir ancak desteklenen formatların tam güncellenmiş listesi için lütfen LibreOffice dokümantasyonuna başvurun fileToPDF.submit=PDF'e Dönüştür diff --git a/src/main/resources/messages_uk_UA.properties b/src/main/resources/messages_uk_UA.properties index 1ace290c..622f4ec8 100644 --- a/src/main/resources/messages_uk_UA.properties +++ b/src/main/resources/messages_uk_UA.properties @@ -69,6 +69,7 @@ visitGithub=Visit Github Repository donate=Donate color=Color sponsor=Sponsor +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=Перевірити ############# # NAVBAR # ############# -navbar.convert=Конвертувати -navbar.security=Безпека -navbar.other=Інше +navbar.favorite=Favorites navbar.darkmode=Темний режим -navbar.pageOps=Операції зі сторінкою +navbar.language=Languages navbar.settings=Налаштування +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=Витягнути fileToPDF.title=Файл у PDF fileToPDF.header=Конвертувати будь-який файл у PDF fileToPDF.credit=Цей сервіс використовує LibreOffice та Unoconv для перетворення файлів. +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=Підтримувані типи файлів повинні включати нижченаведені, однак повний оновлений список підтримуваних форматів дивіться у документації LibreOffice. fileToPDF.submit=Перетворити у PDF diff --git a/src/main/resources/messages_zh_CN.properties b/src/main/resources/messages_zh_CN.properties index ca04fc36..063d1e03 100644 --- a/src/main/resources/messages_zh_CN.properties +++ b/src/main/resources/messages_zh_CN.properties @@ -69,6 +69,7 @@ visitGithub=访问Github仓库 donate=捐款 color=颜色 sponsor=赞助 +info=Info @@ -102,12 +103,18 @@ pipelineOptions.validateButton=验证 ############# # NAVBAR # ############# -navbar.convert=转换 -navbar.security=安全 -navbar.other=其他 +navbar.favorite=Favorites navbar.darkmode=暗模式 -navbar.pageOps=页面操作 +navbar.language=Languages navbar.settings=设置 +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=提取 fileToPDF.title=文件转换为PDF fileToPDF.header=将任何文件转换为PDF。 fileToPDF.credit=此服务使用LibreOffice和Unoconv进行文件转换。 +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=支持的文件类型应该包括以下几种,但是,对于支持的格式的完整更新列表,请参考LibreOffice文档。 fileToPDF.submit=转换为 PDF diff --git a/src/main/resources/messages_zh_TW.properties b/src/main/resources/messages_zh_TW.properties index 8391da55..a218d0f1 100644 --- a/src/main/resources/messages_zh_TW.properties +++ b/src/main/resources/messages_zh_TW.properties @@ -57,6 +57,7 @@ usernameExistsMessage=新使用者名稱已存在。 invalidUsernameMessage=使用者名無效,使用者名只能包含字母字元和數位。 deleteCurrentUserMessage=無法刪除目前登錄的使用者。 deleteUsernameExistsMessage=使用者名不存在,無法刪除。 +info=Info downgradeCurrentUserMessage=無法降級目前使用者的角色 downgradeCurrentUserLongMessage=無法降級目前使用者的角色。因此,不會顯示目前的使用者。 error=錯誤 @@ -102,12 +103,18 @@ pipelineOptions.validateButton=驗證 ############# # NAVBAR # ############# -navbar.convert=轉換 -navbar.security=安全 -navbar.other=其他 +navbar.favorite=Favorites navbar.darkmode=暗黑模式 -navbar.pageOps=頁面操作 +navbar.language=Languages navbar.settings=設定 +navbar.allTools=Tools +navbar.multiTool=Multi Tools +navbar.sections.organize=Organize +navbar.sections.convertTo=Convert to PDF +navbar.sections.convertFrom=Convert from PDF +navbar.sections.security=Sign & Security +navbar.sections.advance=Advanced +navbar.sections.edit=View & Edit ############# # SETTINGS # @@ -742,6 +749,7 @@ extractImages.submit=提取 fileToPDF.title=檔案轉 PDF fileToPDF.header=將任何檔案轉換為 PDF fileToPDF.credit=此服務使用 LibreOffice 和 Unoconv 進行檔案轉換。 +fileToPDF.supportedFileTypesInfo=Supported File types fileToPDF.supportedFileTypes=支援的檔案類型應包括以下內容,但要獲得完整的更新支援格式列表,請參閱 LibreOffice 的文件 fileToPDF.submit=轉換為 PDF diff --git a/src/main/resources/static/css/dark-mode.css b/src/main/resources/static/css/dark-mode.css deleted file mode 100644 index b874f410..00000000 --- a/src/main/resources/static/css/dark-mode.css +++ /dev/null @@ -1,141 +0,0 @@ -/* Dark Mode Styles */ -body, -select, -textarea { - --body-background-color: 51, 51, 51; - --base-font-color: 255, 255, 255; - background-color: rgb(var(--body-background-color)) !important; - color: rgb(var(--base-font-color)) !important; -} -.card { - background-color: rgb(var(--body-background-color)) !important; - border: 1px solid #999; - color: rgb(var(--base-font-color)) !important; -} - -a { - color: #add8e6; -} -a:hover { - color: #87ceeb; /* Slightly brighter blue on hover for accessibility */ -} - -.dark-card { - background-color: rgb(var(--body-background-color)) !important; - color: rgb(var(--base-font-color)) !important; -} -.jumbotron { - background-color: #222; /* or any other dark color */ - color: rgb(var(--base-font-color)) !important; /* or any other light color */ -} - -.list-group { - background-color: #222 !important; - color: rgb(var(--base-font-color)) !important; -} -.list-group-item { - background-color: #222 !important; - color: rgb(var(--base-font-color)) !important; -} -#support-section { - background-color: #444 !important; -} - -#pages-container-wrapper { - --background-color: rgba(255, 255, 255, 0.046) !important; - --scroll-bar-color: #4c4c4c !important; - --scroll-bar-thumb: #d3d3d3 !important; - --scroll-bar-thumb-hover: rgb(var(--base-font-color)) !important; -} - -.favorite-icon img { - filter: brightness(0) invert(1) !important; -} -table thead { - background-color: #333 !important; - border: 1px solid #444; -} -table th, -table td { - border: 1px solid #444 !important; - color: white; -} -.btn { - background-color: #444 !important; - border: none; - color: #fff !important; -} -.btn-primary { - background-color: #007bff !important; - border: none; - color: #fff !important; -} -.btn-secondary { - background-color: #6c757d !important; - border: none; - color: #fff !important; -} -.btn-info { - background-color: #17a2b8 !important; - border: none; - color: #fff !important; -} -.btn-danger { - background-color: #dc3545 !important; - border: none; - color: #fff !important; -} - -.btn-warning { - background-color: #ffc107 !important; - border: none; - color: #000 !important; -} - -.btn-outline-secondary { - color: #fff !important; - border-color: #fff; -} -.btn-outline-secondary:hover { - background-color: #444 !important; - color: #007bff !important; - border-color: #007bff; -} -.blackwhite-icon { - filter: brightness(0) invert(1); -} -hr { - border-color: rgba(255, 255, 255, 0.6); /* semi-transparent white */ - background-color: rgba(255, 255, 255, 0.6); /* for some browsers that might use background instead of border for
*/ -} - -.modal-content { - color: #fff !important; - border-color: #fff; -} - -.global-buttons-container input { - background-color: #323948; - caret-color: #ffffff; - color: #ffffff; -} -.global-buttons-container input::placeholder { - color: #ffffff; -} - -.global-buttons-container input:disabled::-webkit-input-placeholder { - /* WebKit browsers */ - color: #6e6865; -} -.global-buttons-container input:disabled:-moz-placeholder { - /* Mozilla Firefox 4 to 18 */ - color: #6e6865; -} -.global-buttons-container input:disabled::-moz-placeholder { - /* Mozilla Firefox 19+ */ - color: #6e6865; -} -.global-buttons-container input:disabled:-ms-input-placeholder { - /* Internet Explorer 10+ */ - color: #6e6865; -} diff --git a/src/main/resources/static/css/error.css b/src/main/resources/static/css/error.css index 5cc37b61..40ff7669 100644 --- a/src/main/resources/static/css/error.css +++ b/src/main/resources/static/css/error.css @@ -1,17 +1,8 @@ -h1 { - text-align: center; - margin-top: 10%; -} - p { text-align: center; margin-top: 2em; } -.button:hover { - background-color: #005b7f; -} - .features-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(21rem, 3fr)); @@ -31,58 +22,21 @@ p { flex: 1; } -#support-section { - background-color: #f9f9f9; - padding: 4rem; - margin-top: 1rem; - text-align: center; -} - -#support-section h1 { - margin-top: 0; -} - -#support-section p { - margin-top: 0; -} - #button-group { display: flex; justify-content: center; flex-wrap: wrap; } +#home-button, #github-button, #discord-button { display: inline-block; padding: 1rem 2rem; margin: 1rem; - background-color: #008cba; - color: #fff; font-size: 1.2rem; text-align: center; text-decoration: none; border-radius: 3rem; transition: all 0.3s ease-in-out; -} - -#github-button:hover, -#discord-button:hover, -.home-button:hover { - background-color: #005b7f; -} - -.home-button { - display: block; - width: 200px; - height: 50px; - margin: 2em auto; - background-color: #008cba; - color: white; - text-align: center; - line-height: 50px; - text-decoration: none; - font-weight: bold; - border-radius: 25px; - transition: all 0.3s ease-in-out; -} +} \ No newline at end of file diff --git a/src/main/resources/static/css/errorBanner.css b/src/main/resources/static/css/errorBanner.css index 75618731..adeb3dfa 100644 --- a/src/main/resources/static/css/errorBanner.css +++ b/src/main/resources/static/css/errorBanner.css @@ -1,5 +1,6 @@ #errorContainer { - margin: 20px; /* adjust this value as needed */ + margin: 1rem 0rem 2rem; + border-radius: 3rem; } #helpModalDialog { @@ -18,7 +19,7 @@ } #helpModal .button:hover { - background-color: #005b7f; + background-color: var(--md-sys-color-primary); } #helpModal .features-container { @@ -40,58 +41,21 @@ flex: 1; } -#support-section { - background-color: #f9f9f9; - padding: 4rem; - margin-top: 1rem; - text-align: center; -} - -#support-section h1 { - margin-top: 0; -} - -#support-section p { - margin-top: 0; -} - #button-group { display: flex; justify-content: center; flex-wrap: wrap; } +#home-button, #github-button, #discord-button { display: inline-block; padding: 1rem 2rem; margin: 1rem; - background-color: #008cba; - color: #fff; font-size: 1.2rem; text-align: center; text-decoration: none; border-radius: 3rem; transition: all 0.3s ease-in-out; -} - -#github-button:hover, -#discord-button:hover, -.home-button:hover { - background-color: #005b7f; -} - -.home-button { - display: block; - width: 200px; - height: 50px; - margin: 2em auto; - background-color: #008cba; - color: white; - text-align: center; - line-height: 50px; - text-decoration: none; - font-weight: bold; - border-radius: 25px; - transition: all 0.3s ease-in-out; -} +} \ No newline at end of file diff --git a/src/main/resources/static/css/footer.css b/src/main/resources/static/css/footer.css index f6cf093d..b004cc27 100644 --- a/src/main/resources/static/css/footer.css +++ b/src/main/resources/static/css/footer.css @@ -10,11 +10,15 @@ display: flex; align-items: center; /* Center children horizontally */ flex-grow: 1; + flex-direction: column; } .footer-powered-by { margin-top: auto; /* Pushes the text to the bottom */ - color: grey; text-align: center; /* Centers the text inside the div */ width: 100%; /* Full width to center the text properly */ } + +.footer-icon { + font-size: 2rem; +} \ No newline at end of file diff --git a/src/main/resources/static/css/home.css b/src/main/resources/static/css/home.css index ff8d1cf7..a6f89ed0 100644 --- a/src/main/resources/static/css/home.css +++ b/src/main/resources/static/css/home.css @@ -1,18 +1,19 @@ #searchBar { - background-image: url("../images/search.svg"); - background-position: 16px 16px; - background-repeat: no-repeat; + color: var(--md-sys-color-on-surface); + background-color: var(--md-sys-color-surface-container-low); width: 100%; font-size: 16px; - margin-bottom: 12px; - padding: 12px 20px 12px 40px; - border: 1px solid #ddd; + margin-bottom: 2rem; + padding: 0.75rem 3.5rem; + border: 0.1rem solid var(--md-sys-color-outline-variant); + border-radius: 3rem; + outline-color: var(--md-sys-color-outline-variant); } -.dark-mode-search { - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' hei… 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z'/%3E%3C/svg%3E") !important; - color: #f8f9fa !important; - background-color: #212529 !important; - border-color: #343a40 !important; + +.search-icon { + position: absolute; + margin: 0.75rem 1rem; + border: 0.1rem solid transparent; } .features-container { @@ -22,23 +23,23 @@ } .feature-card { - border: 2px solid rgba(0, 0, 0, 0.25); - border-radius: 0.25rem; + border: 2px solid var(--md-sys-color-surface-5); + border-radius: 2rem; padding: 1.25rem; display: flex; flex-direction: column; align-items: flex-start; - background: rgba(13, 110, 253, 0.05); + background: var(--md-sys-color-surface-5); transition: transform 0.3s, border 0.3s; transform-origin: center center; - outline: 2px solid transparent; + outline: 0px solid transparent; } .feature-card a { text-decoration: none; - color: inherit; + color: var(--md-sys-color-on-surface); display: flex; flex-direction: column; width: 100%; @@ -50,44 +51,53 @@ } .feature-card:hover { - outline: 1px solid rgba(0, 0, 0, 0.5); cursor: pointer; transform: scale(1.1); + box-shadow: var(--md-sys-elevation-3); } -.feature-card:hover .card-title { - text-decoration: underline; -} .card-title.text-primary { - color: #000; /* Replace with your desired shade of blue */ + color: #000; } .home-card-icon { - width: 30px; - height: 30px; + width: 3rem; + height: 3rem; transform: translateY(-5px); } -.home-card-icon-colour { - filter: invert(0.2) sepia(2) saturate(50) hue-rotate(190deg); -} .favorite-icon { display: none; position: absolute; top: 10px; right: 10px; + color: var(--md-sys-color-secondary); +} + +#tool-icon { + height: 100%; +} + +#tool-text { + margin: 0.5rem 0.5rem 0rem; +} + +.card-title { + margin-bottom: 1rem; } /* Only show the favorite icons when the parent card is being hovered over */ .feature-card:hover .favorite-icon { display: block; } + .favorite-icon img { - filter: brightness(0); + filter: brightness(0) invert(var(--md-theme-filter-color)); } .jumbotron { - padding: 3rem 3rem; /* Reduce vertical padding */ + padding: 3rem 3rem; + /* Reduce vertical padding */ } .lookatme { @@ -124,3 +134,21 @@ opacity: 0; } } + +.update-notice { + animation: scale 1s infinite alternate; +} + +@keyframes scale { + 0% { + transform: scale(0.96); + } + + 100% { + transform: scale(1); + } +} + +.hidden { + visibility: hidden; +} diff --git a/src/main/resources/static/css/light-mode.css b/src/main/resources/static/css/light-mode.css deleted file mode 100644 index f7e79b90..00000000 --- a/src/main/resources/static/css/light-mode.css +++ /dev/null @@ -1,23 +0,0 @@ -/* Dark Mode Styles */ -body { - --body-background-color: 255, 255, 255; - --base-font-color: 33, 37, 41; -} - -.global-buttons-container input { - background-color: #ffffff; - /*caret-color: #ffffff;*/ - /*color: #ffffff;*/ -} -/*.global-buttons-container input:disabled::-webkit-input-placeholder { !* WebKit browsers *!*/ -/* color: #98A0AB;*/ -/*}*/ -/*.global-buttons-container input:disabled:-moz-placeholder { !* Mozilla Firefox 4 to 18 *!*/ -/* color: #98A0AB;*/ -/*}*/ -/*.global-buttons-container input:disabled::-moz-placeholder { !* Mozilla Firefox 19+ *!*/ -/* color: #98A0AB;*/ -/*}*/ -/*.global-buttons-container input:disabled:-ms-input-placeholder { !* Internet Explorer 10+ *!*/ -/* color: #98A0AB;*/ -/*}*/ diff --git a/src/main/resources/static/css/login.css b/src/main/resources/static/css/login.css index 743ee606..7ed2a90b 100644 --- a/src/main/resources/static/css/login.css +++ b/src/main/resources/static/css/login.css @@ -8,7 +8,6 @@ body { align-items: center; padding-top: 40px; padding-bottom: 40px; - background-color: #f5f5f5; } .form-signin { @@ -37,6 +36,7 @@ body { border-top-left-radius: 0; border-top-right-radius: 0; } + .container-flex { display: flex; flex-direction: column; @@ -44,41 +44,22 @@ body { width: 100%; /* Set width to 100% */ align-items: center; /* Center its children horizontally */ } + .footer-bottom { margin-top: auto; } -body.light-mode input:-webkit-autofill, -body.light-mode input:-webkit-autofill:hover, -body.light-mode input:-webkit-autofill:focus, -body.light-mode input:-webkit-autofill:active { - -webkit-text-fill-color: #212529; /* Dark font color */ - -webkit-box-shadow: 0 0 0 1000px #f8f9fa inset; /* Light background color */ + +.form-control { + border-radius: 1.25rem !important; } -/* Dark Mode */ -body.dark-mode input:-webkit-autofill, -body.dark-mode input:-webkit-autofill:hover, -body.dark-mode input:-webkit-autofill:focus, -body.dark-mode input:-webkit-autofill:active { - -webkit-text-fill-color: #f8f9fa; /* Light font color */ - -webkit-box-shadow: 0 0 0 1000px #212529 inset; /* Dark background color */ -} -/* Light Mode */ -body.light-mode .form-floating > input:focus + label { - color: #212529 !important; /* Dark text for light background */ +.form-signin .form-floating { + margin: 1rem 0px; } -/* Dark Mode */ -body.dark-mode .form-floating > input:focus + label { - color: #fff !important; /* Light text for dark background */ -} - -body.light-mode .form-floating > label { - color: #212529 !important; /* Dark text for light background */ -} - -body.dark-mode .form-floating > label { - color: #fff !important; /* Light text for dark background */ +input[type="checkbox" i] { + margin: 0px 5px; + vertical-align: middle; } /* Removing default styles for ul and li */ diff --git a/src/main/resources/static/css/multi-tool.css b/src/main/resources/static/css/multi-tool.css index 50e038ce..f9c359dc 100644 --- a/src/main/resources/static/css/multi-tool.css +++ b/src/main/resources/static/css/multi-tool.css @@ -3,43 +3,80 @@ margin: 0 auto; } -.global-buttons-container { +label { + text-align: left; + display: block; + padding: 0rem 0.25rem; + font-size: 1.25rem; +} + +.form-control { + border-radius: 16px !important; + padding: 0.75rem; + border: 1px solid var(--theme-color-outline-variant); +} + +.mt-action-bar { display: flex; gap: 10px; align-items: start; - - background-color: rgba(13, 110, 253, 0.1); - border: 1px solid rgba(0, 0, 0, 0.25); + background-color: var(--md-sys-color-surface-5); + border: none; backdrop-filter: blur(2px); - top: 10px; z-index: 10; - padding: 10px; - border-radius: 8px; -} -.global-buttons-container > * { - padding: 0.6rem 0.75rem; + padding: 1.25rem; + border-radius: 2rem; + margin: 0px 25px; } -.global-buttons-container svg { +.mt-action-bar>* { + padding-bottom: 0.5rem; +} + +.mt-action-bar svg, +.mt-action-btn svg { width: 20px; height: 20px; } + +.mt-action-bar .mt-filename { + width: 100%; +} + +.mt-action-btn { + display: flex; + gap: 10px; + align-items: start; + top: 10px; + z-index: 10; + padding: 12px 0px 0px; + width: 100%; +} + +.mt-action-btn .btn { + width: 3rem; + height: 3rem; + border-radius: 20px; + padding: 0; +} + #export-button { margin-left: auto; } +#bg-card { + background-color: var(--md-sys-color-surface-5); + border-radius: 3rem; + padding: 25px 0 0; +} + #pages-container-wrapper { - --background-color: rgba(0, 0, 0, 0.025); - --scroll-bar-color: #f1f1f1; - --scroll-bar-thumb: #888; - --scroll-bar-thumb-hover: #555; - background-color: var(--background-color); width: 100%; display: flex; flex-direction: column; - padding: 10px 25px; - border-radius: 10px; + padding: 1rem; + border-radius: 25px; overflow-y: hidden; overflow-x: auto; min-height: 275px; @@ -47,11 +84,11 @@ } #pages-container { - margin: auto; gap: 0px; display: flex; - align-items: center; - justify-content: center; + flex-wrap: wrap; + margin-left: -15px; + margin-right: -15px; } /* width */ @@ -86,6 +123,58 @@ position: relative; user-select: none; transition: width 1s linear; + margin-top: 16px; + margin-bottom: 16px; +} + +/* Pushes the last item to the left */ +.page-container:last-child { + margin-right: auto; +} + +.page-container:last-child:lang(ar), +/* Arabic */ +.page-container:last-child:lang(he), +/* Hebrew */ +.page-container:last-child:lang(fa), +/* Persian */ +.page-container:last-child:lang(ur), +/* Urdu */ +.page-container:last-child:lang(ckb), +/* Sorani Kurdish */ +.page-container:last-child:lang(ks), +/* Kashmiri */ +.page-container:last-child:lang(kk), +/* Kazakh */ +.page-container:last-child:lang(uz), +/* Uzbek */ +.page-container:last-child:lang(ky), +/* Kyrgyz */ +.page-container:last-child:lang(bal), +/* Baluchi */ +.page-container:last-child:lang(dv), +/* Divehi */ +.page-container:last-child:lang(ps), +/* Pashto */ +.page-container:last-child:lang(sdg), +/* Southern Kurdish */ +.page-container:last-child:lang(syr), +/* Syriac */ +.page-container:last-child:lang(mzn), +/* Mazanderani */ +.page-container:last-child:lang(tgl), +/* Tagalog */ +.page-container:last-child:lang(pnb), +/* Western Punjabi */ +.page-container:last-child:lang(ug), +/* Uyghur */ +.page-container:last-child:lang(nqo), +/* N'Ko */ +.page-container:last-child:lang(bqi) +/* Bakhtiari */ +{ + margin-left: auto !important; + margin-right: 0 !important; } .page-container img { @@ -109,11 +198,15 @@ .page-number { position: absolute; top: 5px; - right: 5px; - color: white; - background-color: #007bff; /* Primary blue color */ - padding: 3px 6px; - border-radius: 4px; - font-size: 12px; + right: 0px; + color: var(--md-sys-color-on-surface); + background-color: var(--md-sys-color-surface-5); + padding: 6px 8px; + border-radius: 8px; + font-size: 16px; z-index: 2; } + +.tool-header { + margin: 0.5rem 1rem 2rem; +} \ No newline at end of file diff --git a/src/main/resources/static/css/navbar.css b/src/main/resources/static/css/navbar.css index abbb02de..bd24738b 100644 --- a/src/main/resources/static/css/navbar.css +++ b/src/main/resources/static/css/navbar.css @@ -7,29 +7,18 @@ } #navbarSearch.show { - max-height: 300px; /* Adjust this to your desired max height */ -} - -#searchForm { - width: 300px; /* Adjust this value as needed */ -} - -/* Style the search results to match the navbar */ -#searchResults { - max-height: 200px; /* Adjust this value as needed */ - overflow-y: auto; - width: 100%; - max-width: 300px; /* Adjust to your preferred width */ - transition: height 0.3s ease; /* Smooth height transition */ - padding: 0px !important; + max-height: 300px; + /* Adjust this to your desired max height */ } #searchResults .dropdown-item { display: flex; align-items: center; white-space: nowrap; - height: 50px; /* Fixed height */ - overflow: hidden; /* Hide overflow */ + height: 50px; + /* Fixed height */ + overflow: hidden; + /* Hide overflow */ } #searchResults .icon { @@ -38,40 +27,34 @@ #searchResults .icon-text { display: inline; - overflow: hidden; /* Hide overflow */ - text-overflow: ellipsis; /* Add ellipsis for long text */ + overflow: hidden; + /* Hide overflow */ + text-overflow: ellipsis; + /* Add ellipsis for long text */ } #search-icon i { - font-size: 24px; /* Adjust this to your desired size */ + font-size: 24px; + /* Adjust this to your desired size */ transition: color 0.3s; } #search-icon:hover i { - color: #666; /* Adjust this to your hover color */ + color: #666; + /* Adjust this to your hover color */ } .search-input { - transition: - border 0.3s, - box-shadow 0.3s; + transition: border 0.3s, box-shadow 0.3s; } .search-input:focus { - border-color: #666; /* Adjust this to your focus color */ - box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Adjust this to your desired shadow */ + border-color: #666; + /* Adjust this to your focus color */ + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + /* Adjust this to your desired shadow */ } -/* Set a fixed height and styling for each search result item */ -.search-results a { - display: flex; - align-items: center; - gap: 10px; /* space between icon and text */ - height: 40px; /* Adjust based on your design */ - overflow: hidden; /* Prevent content from overflowing */ - white-space: nowrap; /* Prevent text from wrapping to next line */ - text-overflow: ellipsis; /* Truncate text if it's too long */ -} .main-icon { width: 36px; @@ -80,34 +63,59 @@ transform: translateY(-2px); } -.icon { - width: 16px; - height: 16px; +.nav-icon { vertical-align: middle; - transform: translateY(-2px); + font-size: 2rem !important; + padding: 0.25rem; + border-radius: 1rem; } -.icon + .icon { +.icon+.icon { margin-left: -4px; } .icon-text { margin-left: 4px; + margin-right: 4px; + display: inline-flex; + flex-direction: column; + justify-content: space-between; + vertical-align: middle; +} + +.dropdown-item .icon-text { + text-wrap: wrap; + word-break: break-word; + width: 80%; +} + +span.icon-text::after { + content: attr(data-text); + content: attr(data-text) / ""; + font-weight: 600; + height: 0; + visibility: hidden; + overflow: hidden; + user-select: none; + pointer-events: none; } .nav-item-separator { position: relative; - margin: 0 4px; /* Adjust the margin as needed */ + margin: 0 4px; + /* Adjust the margin as needed */ } .nav-item-separator::before { content: ""; position: absolute; left: 0; - top: 10%; /* Adjust the top and bottom margins as needed */ + top: 10%; + /* Adjust the top and bottom margins as needed */ bottom: 10%; width: 1px; - background-color: #ccc; /* Adjust the color as needed */ + background-color: #ccc; + /* Adjust the color as needed */ } .navbar-icon { @@ -115,3 +123,168 @@ height: 20px; transform: translateY(-2px); } + +.navbar-toggler { + color: var(--md-sys-color-on-surface-variant); +} + +.dropdown-menu.scrollable-y { + overflow-y: scroll; + height: 360px; +} + +/* Dropdown Scrollbar*/ +.scrollable-y { + overflow-y: scroll; + height: 360px; +} + +.scrollable-y::-webkit-scrollbar { + background: transparent; + width: 0.7rem; +} + +.scrollable-y::-webkit-scrollbar-track { + background: transparent; +} + +.scrollable-y::-webkit-scrollbar-thumb { + border-radius: 2rem; + background-color: var(--md-sys-color-surface-5); + border: 3px solid var(--md-sys-color-surface-5); +} + +/* Mega Menu */ +.dropdown-mega .dropdown-menu { + width: 98%; +} + +.dropdown-mega .title { + padding-bottom: 1rem; + margin: 0; +} + +.dropdown-menu .list-group { + padding: 1rem; +} + +.mega-content .dropdown-item:focus .nav-icon, +.mega-content .dropdown-item:hover .nav-icon, +.mega-content .dropdown-item.active .nav-icon { + background-color: transparent; +} + +.dropdown-item:focus.sign, +.dropdown-item:hover.sign, +.dropdown-item.active.sign { + color: var(--md-nav-on-section-color-sign); + background-color: var(--md-nav-section-color-sign); +} + +.dropdown-item:focus.organize, +.dropdown-item:hover.organize, +.dropdown-item.active.organize { + color: var(--md-nav-on-section-color-organize); + background-color: var(--md-nav-section-color-organize); +} + +.dropdown-item:focus.convert, +.dropdown-item:hover.convert, +.dropdown-item.active.convert { + color: var(--md-nav-on-section-color-convert); + background-color: var(--md-nav-section-color-convert); +} + +.dropdown-item:focus.image, +.dropdown-item:hover.image, +.dropdown-item.active.image { + color: var(--md-nav-on-section-color-image); + background-color: var(--md-nav-section-color-image); +} + +.dropdown-item:focus.word, +.dropdown-item:hover.word, +.dropdown-item.active.word { + color: var(--md-nav-on-section-color-word); + background-color: var(--md-nav-section-color-word); +} + +.dropdown-item:focus.ppt, +.dropdown-item:hover.ppt, +.dropdown-item.active.ppt { + color: var(--md-nav-on-section-color-ppt); + background-color: var(--md-nav-section-color-ppt); +} + +.dropdown-item:focus.security, +.dropdown-item:hover.security, +.dropdown-item.active.security { + color: var(--md-nav-on-section-color-security); + background-color: var(--md-nav-section-color-security); +} + +.dropdown-item:focus.other, +.dropdown-item:hover.other, +.dropdown-item.active.other { + color: var(--md-nav-on-section-color-other); + background-color: var(--md-nav-section-color-other); +} + +.dropdown-item:focus.advance, +.dropdown-item:hover.advance, +.dropdown-item.active.advance { + color: var(--md-nav-on-section-color-advance); + background-color: var(--md-nav-section-color-advance); +} + +/* Dropdown min-width */ +.dropdown-mw-28 { + min-width: 280px; +} + +.dropdown-mw-20 { + min-width: 200px; +} + +/* Dropdown open on hover */ +.dropdown-menu { + padding-top: 0.5rem; + top: auto; + left: 0; +} + +.dropdown-menu[data-bs-popper] { + top: auto; + left: 0; + margin-top: 0 !important; +} + +.dropdown-menu-wrapper { + padding: 1.5rem 0; + border-radius: 1rem; + color: var(--md-sys-color-on-surface); + background-color: var(--md-sys-color-surface-container); + border: 1px solid var(--md-sys-color-surface-5); + box-shadow: var(--md-sys-elevation-2); +} + +.dropdown-menu-tp { + color: transparent; + background-color: transparent; + border: none; + box-shadow: none; +} + +.icon-hide { + display: inline-flex; +} + +@media (min-width:992px) { + .dropdown:hover .dropdown-menu { + display: block; + margin-top: 0; + } + .icon-hide { + display: none; + } +} \ No newline at end of file diff --git a/src/main/resources/static/css/pdfActions.css b/src/main/resources/static/css/pdfActions.css index 455de860..e8a51224 100644 --- a/src/main/resources/static/css/pdfActions.css +++ b/src/main/resources/static/css/pdfActions.css @@ -9,19 +9,33 @@ opacity: 1; } -.pdf-actions_button-container > * { +.pdf-actions_button-container>* { padding: 0.25rem 0.5rem; - margin: 3px; display: block; } +.pdf-actions_button-container>*:focus { + box-shadow: none !important; +} + +.pdf-actions_button-container .btn { + border-radius: 12px; +} + +.pdf-actions_button-container> :first-child, +.pdf-actions_container:first-child>.pdf-actions_button-container> :first-child+* { + border-radius: 12px 0px 0px 12px; +} + .pdf-actions_container svg { width: 16px; height: 16px; } + .pdf-actions_container:nth-child(1) .pdf-actions_move-left-button { display: none; } + .pdf-actions_container:last-child .pdf-actions_move-right-button { display: none; } @@ -37,6 +51,25 @@ transition: opacity 0.2s; } +.pdf-actions_insert-file-button-container button .material-symbols-rounded { + vertical-align: top; +} + +.pdf-actions_insert-file-button-container.left button, +.pdf-actions_insert-file-button-container.right button { + padding: 0.45rem; +} + +.pdf-actions_button-container button .material-symbols-rounded { + font-size: 1.25rem; + vertical-align: sub; +} + +.pdf-actions_insert-file-button { + padding: 0; + vertical-align: sub; +} + .pdf-actions_insert-file-button-container.left { left: -20px; } @@ -63,11 +96,11 @@ html[dir="rtl"] .pdf-actions_insert-file-button-container.left { translate: 0 -50%; } -html[dir="ltr"] .pdf-actions_container:last-child > .pdf-actions_insert-file-button-container.right { +html[dir="ltr"] .pdf-actions_container:last-child>.pdf-actions_insert-file-button-container.right { display: block; } -html[dir="rtl"] .pdf-actions_container:last-child > .pdf-actions_insert-file-button-container.left { +html[dir="rtl"] .pdf-actions_container:last-child>.pdf-actions_insert-file-button-container.left { display: block; } @@ -75,6 +108,7 @@ html[dir="rtl"] .pdf-actions_container:last-child > .pdf-actions_insert-file-but opacity: 1; transition: opacity 0.05s; } + .pdf-actions_insert-file-button { position: absolute; top: 50%; @@ -82,4 +116,4 @@ html[dir="rtl"] .pdf-actions_container:last-child > .pdf-actions_insert-file-but translate: 50% -50%; aspect-ratio: 1; border-radius: 100px; -} +} \ No newline at end of file diff --git a/src/main/resources/static/css/pipeline.css b/src/main/resources/static/css/pipeline.css index 9468333b..2b7218f7 100644 --- a/src/main/resources/static/css/pipeline.css +++ b/src/main/resources/static/css/pipeline.css @@ -4,18 +4,23 @@ .bordered-box { border: 1px solid #ddd; - padding: 20px; - margin: 20px; + padding: 2rem; + margin: 2rem; width: 70%; } .center-element { - width: 80%; + width: 100%; text-align: center; margin: auto; + margin-top: 2rem; } .element-margin { - margin: 10px 0; + margin: 1rem 0; /* Adjust this value to increase/decrease the margin as needed */ } + +#pipelineList { + margin-bottom: 2rem; +} \ No newline at end of file diff --git a/src/main/resources/static/css/theme/componentes.css b/src/main/resources/static/css/theme/componentes.css new file mode 100644 index 00000000..d588d686 --- /dev/null +++ b/src/main/resources/static/css/theme/componentes.css @@ -0,0 +1,917 @@ +/* Dark Mode Styles */ +body, +select, +textarea { + background-color: var(--md-sys-color-surface); + color: var(--md-sys-color-on-surface); +} + +.transition-theme { + transition: background 0.5s ease, color 0.5s ease, border 0.5s ease; +} + + +/*.global-buttons-container input:disabled::-webkit-input-placeholder { !* WebKit browsers *!*/ +/* color: #98A0AB;*/ +/*}*/ +/*.global-buttons-container input:disabled:-moz-placeholder { !* Mozilla Firefox 4 to 18 *!*/ +/* color: #98A0AB;*/ +/*}*/ +/*.global-buttons-container input:disabled::-moz-placeholder { !* Mozilla Firefox 19+ *!*/ +/* color: #98A0AB;*/ +/*}*/ +/*.global-buttons-container input:disabled:-ms-input-placeholder { !* Internet Explorer 10+ *!*/ +/* color: #98A0AB;*/ +/*}*/ +/* Scrollbar */ +*::-webkit-scrollbar { + background: var(--md-sys-color-surface); + width: 1rem; +} + +*::-webkit-scrollbar-track { + background: var(--md-sys-color-surface); +} + +*::-webkit-scrollbar-thumb { + border-radius: 2rem; + background-color: var(--md-sys-color-surface-5); + border: 5px solid var(--md-sys-color-surface-5); +} + +/* Alerts */ +.alert { + border-radius: 3rem; +} + +/* Table */ +td { + word-break: break-word; +} + +.input-group-append { + margin: 0rem 0.5rem !important; +} + +.card-header { + background-color: transparent; + border-bottom: none; +} + +#bg-card { + background-color: var(--md-sys-color-surface-5); + border-radius: 3rem; + padding: 2.5rem; +} + +.card { + padding: 1.25rem; + border-radius: 2rem; + background-color: var(--md-sys-color-surface-5); + border: none; +} + +/* Modal */ +.modal-content { + background-color: var(--md-sys-color-surface); + border-radius: 2rem; + border: transparent; +} + +.modal-header, +.modal-body, +.modal-footer { + background-color: var(--md-sys-color-surface-5); + padding: 1.5rem 2rem; + border: none; +} + +.modal-header { + border-radius: 2rem 2rem 0rem 0rem; +} + +.modal-footer { + border-radius: 0rem 0rem 2rem 2rem; +} + +/* Icon fill */ +.material-symbols-rounded { + vertical-align: text-top; +} + +/* Navbar Icon*/ +.nav-icon { + color: var(--md-sys-color-surface); +} + +.sign .nav-icon, +.sign.tool-header-icon { + color: var(--md-nav-on-section-color-sign); + background-color: var(--md-nav-section-color-sign); +} + +.organize .nav-icon, +.organize.tool-header-icon { + color: var(--md-nav-on-section-color-organize); + background-color: var(--md-nav-section-color-organize); +} + +.convert .nav-icon, +.convert.tool-header-icon { + color: var(--md-nav-on-section-color-convert); + background-color: var(--md-nav-section-color-convert); +} + +.security .nav-icon, +.security.tool-header-icon { + color: var(--md-nav-on-section-color-security); + background-color: var(--md-nav-section-color-security); +} + +.other .nav-icon, +.other.tool-header-icon { + color: var(--md-nav-on-section-color-other); + background-color: var(--md-nav-section-color-other); +} + +.advance .nav-icon, +.advance.tool-header-icon { + color: var(--md-nav-on-section-color-advance); + background-color: var(--md-nav-section-color-advance); +} + +.image .nav-icon, +.image.tool-header-icon { + color: var(--md-nav-on-section-color-image); + background-color: var(--md-nav-section-color-image); +} + +.word .nav-icon, +.word.tool-header-icon { + color: var(--md-nav-on-section-color-word); + background-color: var(--md-nav-section-color-word); +} + +.ppt .nav-icon, +.ppt.tool-header-icon { + color: var(--md-nav-on-section-color-ppt); + background-color: var(--md-nav-section-color-ppt); +} + +/* Tool Page Header*/ +.tool-header { + margin-bottom: 2rem; +} + +.tool-header .tool-header-icon { + margin: 0px 1rem; + height: 4rem; + width: 4rem; + border-radius: 25px; + font-size: 3rem; + padding: 0.5rem; + vertical-align: middle; + pointer-events: none; + user-select: none; + -webkit-user-select: none; + -webkit-tap-highlight-color: rgb(0 0 0 / 0%); +} + +.tool-header .tool-header-text { + font-size: 2.5rem; + font-weight: 400; + vertical-align: middle; +} + +/* Home Card Colors*/ +.feature-card .nav-icon { + vertical-align: middle; + font-size: 2rem !important; + padding: 0.5rem; + border-radius: 1.25rem; + color: var(--md-sys-color-surface); +} + +.feature-card .sign .nav-icon { + color: var(--md-nav-on-section-color-sign); + background-color: var(--md-nav-section-color-sign); +} + +.feature-card .organize .nav-icon { + color: var(--md-nav-on-section-color-organize); + background-color: var(--md-nav-section-color-organize); +} + +.feature-card .convert .nav-icon { + color: var(--md-nav-on-section-color-convert); + background-color: var(--md-nav-section-color-convert); +} + +.feature-card .security .nav-icon { + color: var(--md-nav-on-section-color-security); + background-color: var(--md-nav-section-color-security); +} + +.feature-card .other .nav-icon { + color: var(--md-nav-on-section-color-other); + background-color: var(--md-nav-section-color-other); +} + +.feature-card .advance .nav-icon { + color: var(--md-nav-on-section-color-advance); + background-color: var(--md-nav-section-color-advance); +} + +.feature-card .image .nav-icon { + color: var(--md-nav-on-section-color-image); + background-color: var(--md-nav-section-color-image); +} + +.feature-card .word .nav-icon { + color: var(--md-nav-on-section-color-word); + background-color: var(--md-nav-section-color-word); +} + +.feature-card .ppt .nav-icon { + color: var(--md-nav-on-section-color-ppt); + background-color: var(--md-nav-section-color-ppt); +} + +/* Buttons Components */ +.btn { + border-radius: 1.25rem; +} + +.btn-close { + width: auto; + height: auto; + color: var(--md-sys-color-on-surface); + background: transparent; +} + +.btn-close:hover { + color: var(--md-sys-color-on-surface); +} + +.modal-header .btn-close { + margin: 0; +} + +/* Primary btn */ +.btn-primary { + color: var(--md-sys-color-on-primary); + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-primary); + box-shadow: none !important; +} + +.btn-primary.disabled, +.btn-primary:disabled { + color: var(--md-sys-color-on-primary); + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-primary); +} + +.btn-primary:hover { + color: var(--md-sys-color-on-primary); + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-primary); + box-shadow: var(--md-sys-elevation-3) !important; +} + +.btn-check:active+.btn-primary, +.btn-check:checked+.btn-primary, +.btn-primary.active, +.btn-primary:active, +.show>.btn-primary.dropdown-toggle { + color: var(--md-sys-color-on-primary); + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-primary); + box-shadow: var(--md-sys-elevation-3) !important; +} + +.btn-check:focus+.btn-primary, +.btn-primary:focus { + color: var(--md-sys-color-on-primary); + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-primary); + box-shadow: var(--md-sys-elevation-3) !important; +} + +/* Secondary btn */ +.btn-secondary { + color: var(--md-sys-color-on-secondary); + background-color: var(--md-sys-color-secondary); + border-color: var(--md-sys-color-secondary); + box-shadow: none !important; +} + +.btn-secondary.disabled, +.btn-secondary:disabled { + color: var(--md-sys-color-on-secondary); + background-color: var(--md-sys-color-secondary); + border-color: var(--md-sys-color-secondary); +} + +.btn-secondary:hover { + color: var(--md-sys-color-on-secondary); + background-color: var(--md-sys-color-secondary); + border-color: var(--md-sys-color-secondary); + box-shadow: var(--md-sys-elevation-3) !important; +} + +.btn-check:active+.btn-secondary, +.btn-check:checked+.btn-secondary, +.btn-secondary.active, +.btn-secondary:active, +.show>.btn-secondary.dropdown-toggle { + color: var(--md-sys-color-on-secondary); + background-color: var(--md-sys-color-secondary); + border-color: var(--md-sys-color-secondary); + box-shadow: var(--md-sys-elevation-3) !important; +} + +.btn-check:focus+.btn-secondary, +.btn-secondary:focus { + color: var(--md-sys-color-on-secondary); + background-color: var(--md-sys-color-secondary); + border-color: var(--md-sys-color-secondary); + box-shadow: var(--md-sys-elevation-3) !important; +} + +/* Danger btn */ +.btn-danger { + color: var(--md-sys-color-on-error); + background-color: var(--md-sys-color-error); + border-color: var(--md-sys-color-error); + box-shadow: none !important; +} + +.btn-danger.disabled, +.btn-danger:disabled { + color: var(--md-sys-color-on-error); + background-color: var(--md-sys-color-error); + border-color: var(--md-sys-color-error); +} + +.btn-danger:hover { + color: var(--md-sys-color-on-error); + background-color: var(--md-sys-color-error); + border-color: var(--md-sys-color-error); + box-shadow: var(--md-sys-elevation-3) !important; +} + +.btn-check:active+.btn-danger, +.btn-check:checked+.btn-danger, +.btn-danger.active, +.btn-danger:active, +.show>.btn-danger.dropdown-toggle { + color: var(--md-sys-color-on-error); + background-color: var(--md-sys-color-error); + border-color: var(--md-sys-color-error); + box-shadow: var(--md-sys-elevation-3) !important; +} + +.btn-check:focus+.btn-danger, +.btn-danger:focus { + color: var(--md-sys-color-on-error); + background-color: var(--md-sys-color-error); + border-color: var(--md-sys-color-error); + box-shadow: var(--md-sys-elevation-3) !important; +} + +/* Info btn */ +.btn-info { + color: var(--md-sys-color-on-tertiary); + background-color: var(--md-sys-color-tertiary); + border-color: var(--md-sys-color-tertiary); + box-shadow: none !important; +} + +.btn-info .disabled, +.btn-info:disabled { + color: var(--md-sys-color-on-tertiary); + background-color: var(--md-sys-color-tertiary); + border-color: var(--md-sys-color-tertiary); +} + +.btn-info:hover { + color: var(--md-sys-color-on-tertiary); + background-color: var(--md-sys-color-tertiary); + border-color: var(--md-sys-color-tertiary); + box-shadow: var(--md-sys-elevation-3) !important; +} + +.btn-check:active+.btn-info, +.btn-check:checked+.btn-info, +.btn-info .active, +.btn-info:active, +.show>.btn-info.dropdown-toggle { + color: var(--md-sys-color-on-tertiary); + background-color: var(--md-sys-color-tertiary); + border-color: var(--md-sys-color-tertiary); + box-shadow: var(--md-sys-elevation-3) !important; +} + +.btn-check:focus+.btn-info, +.btn-info:focus { + color: var(--md-sys-color-on-tertiary); + background-color: var(--md-sys-color-tertiary); + border-color: var(--md-sys-color-tertiary); + box-shadow: var(--md-sys-elevation-3) !important; +} + +/* Info btn */ +.btn-success { + box-shadow: none !important; +} + +.btn-success:hover, +.btn-check:active+.btn-success, +.btn-check:checked+.btn-success, +.btn-success .active, +.btn-success:active, +.show>.btn-success.dropdown-toggle, +.btn-check:focus+.btn-success, +.btn-success:focus { + box-shadow: var(--md-sys-elevation-3) !important; +} + +/* Warning btn */ +.btn-warning { + box-shadow: none !important; +} + +.btn-warning:hover, +.btn-check:active+.btn-warning, +.btn-check:checked+.btn-warning, +.btn-warning .active, +.btn-warning:active, +.show>.btn-warning.dropdown-toggle, +.btn-check:focus+.btn-warning, +.btn-warning:focus { + box-shadow: var(--md-sys-elevation-3) !important; +} + +/* Outline Primary btn */ +.btn-outline-primary { + color: var(--md-sys-color-primary); + background-color: transparent; + border-color: var(--md-sys-color-primary); + box-shadow: none !important; +} + +.btn-outline-primary .disabled, +.btn-outline-primary:disabled { + color: var(--md-sys-color-primary); + background-color: transparent; + border-color: var(--md-sys-color-primary); +} + +.btn-outline-primary:hover { + color: var(--md-sys-color-on-primary); + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-primary); +} + +.btn-check:active+.btn-outline-primary, +.btn-check:checked+.btn-outline-primary, +.btn-outline-primary .active, +.btn-outline-primary:active, +.show>.btn-outline-primary.dropdown-toggle { + color: var(--md-sys-color-on-primary); + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-primary); +} + +.btn-check:focus+.btn-outline-primary, +.btn-outline-primary:focus { + color: var(--md-sys-color-on-primary); + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-primary); +} + +/* Outline Secondary btn */ +.btn-outline-secondary { + color: var(--md-sys-color-secondary); + background-color: transparent; + border-color: var(--md-sys-color-secondary); + box-shadow: none !important; +} + +.btn-outline-secondary .disabled, +.btn-outline-secondary:disabled { + color: var(--md-sys-color-secondary); + background-color: transparent; + border-color: var(--md-sys-color-secondary); +} + +.btn-outline-secondary:hover { + color: var(--md-sys-color-on-secondary); + background-color: var(--md-sys-color-secondary); + border-color: var(--md-sys-color-secondary); +} + +.btn-check:active+.btn-outline-secondary, +.btn-check:checked+.btn-outline-secondary, +.btn-outline-secondary .active, +.btn-outline-secondary:active, +.show>.btn-outline-secondary.dropdown-toggle { + color: var(--md-sys-color-on-secondary); + background-color: var(--md-sys-color-secondary); + border-color: var(--md-sys-color-secondary); +} + +.btn-check:focus+.btn-outline-secondary, +.btn-outline-secondary:focus { + color: var(--md-sys-color-on-secondary); + background-color: var(--md-sys-color-secondary); + border-color: var(--md-sys-color-secondary); +} + +/* Disabled btn */ +.btn.disabled, +.btn:disabled, +fieldset:disabled .btn { + pointer-events: none; + opacity: 0.65; +} + +/* Range Slider */ +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px var(--md-sys-color-surface), 0 0 0 .25rem var(--md-sys-color-primary) +} + +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px var(--md-sys-color-surface), 0 0 0 .25rem var(--md-sys-color-primary) +} + +.form-range::-webkit-slider-thumb { + background-color: var(--md-sys-color-primary); +} + + +.form-range::-webkit-slider-thumb:active { + background-color: var(--md-sys-color-primary) +} + +.form-range::-webkit-slider-runnable-track { + background-color: var(--md-sys-color-on-primary) +} + +.form-range::-moz-range-thumb { + background-color: var(--md-sys-color-primary); +} + + +/* checkbox */ +.form-check { + margin-bottom: 1rem; +} + +.form-check-label { + margin-left: 0.5rem; + margin-right: 0.5rem; +} + +.form-check-input { + width: 1.5rem; + height: 1.5rem; + margin: 0; + background-color: var(--md-sys-color-surface); + border: 2px solid var(--md-sys-color-outline-variant); +} + +.form-check-input:checked { + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-outline-variant); + border: none; +} + +.form-check-input:focus { + border-color: var(--md-sys-color-outline-variant); + outline: 0; + box-shadow: 0 0 0 .25rem var(--md-sys-color-outline-variant); +} + +.form-check-input:checked[type=checkbox] { + background-image: none; +} + +.form-check input[type="checkbox"]:checked+span.material-symbols-rounded { + display: block; +} + +.form-check span.material-symbols-rounded { + display: none; + color: var(--md-sys-color-surface); + position: absolute; + margin-left: -1.5rem; + margin-right: -1.5rem; + pointer-events: none; + user-select: none; + -webkit-user-select: none; + -webkit-tap-highlight-color: rgb(0 0 0 / 0%); +} + +.form-check { + min-height: 22px; + padding-left: 0; +} + +.form-check > label { + padding-left: 29px !important; + min-height: 22px; + line-height: 22px; + display: inline-block; + position: relative; + vertical-align: top; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; + padding-right: 29px !important; +} + +.form-check > input:first-child { + position: absolute !important; + opacity: 0; + margin: 0; + background-color: var(--md-sys-state-hover-opacity); + border-radius: 50%; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + -ms-appearance: none; + display: block; + width: 22px; + height: 22px; + outline: none; + transform: scale(1.65); + -ms-transform: scale(1.65); + transition: opacity .3s; +} + +.form-check > input:first-child:hover { + opacity: 1; + transform: scale(1.65); + -ms-transform: scale(1.65); +} + +.form-check > input:first-child:disabled { + cursor: default; +} + +.form-check > input:first-child:disabled + label, +.form-check > input:first-child:disabled + input[type="hidden"] + label, +.form-check > input:first-child:disabled + label::before, +.form-check > input:first-child:disabled + input[type="hidden"] + label::before { + pointer-events: none; + cursor: default; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; +} + +.form-check > input:first-child + label::before, +.form-check > input:first-child + input[type="hidden"] + label::before { + content: ""; + display: inline-block; + position: absolute; + width: 22px; + height: 22px; + border: 2px solid var(--md-sys-color-on-surface-variant); + border-radius: 3px; + margin-left: -29px; + box-sizing: border-box; + margin-right: -29px; +} + +.form-check > input:first-child:checked + label::after, +.form-check > input:first-child:checked + input[type="hidden"] + label::after { + content: ""; + display: inline-block; + position: absolute; + top: 0; + left: 0; + width: 7px; + height: 10px; + border: solid 2px; + border-left: none; + border-top: none; + transform: translate(7.75px, 4.5px) rotate(45deg); + -ms-transform: translate(7.75px, 4.5px) rotate(45deg); + box-sizing: border-box; + right: 0; + margin-right: 14px; + border-bottom-color: var(--md-sys-color-on-primary); + border-right-color: var(--md-sys-color-on-primary); +} + +.form-check > input:first-child::-ms-check { + opacity: 0; + border-radius: 50%; + background-color: var(--md-sys-color-primary); +} + +.form-check > input:first-child:active { + transform: scale(0); + -ms-transform: scale(0); + opacity: 1; + transition: opacity 0s, transform 0s; +} + +.form-check > input[type="radio"]:first-child + label::before, +.form-check > input[type="radio"]:first-child + input[type="hidden"] + label::before { + border-radius: 50%; +} + +.form-check > input[type="radio"]:first-child:checked + label::before, +.form-check > input[type="radio"]:first-child:checked + input[type="hidden"] + label::before { + background-color: transparent; +} + +.form-check > input[type="radio"]:first-child:checked + label::after, +.form-check > input[type="radio"]:first-child:checked + input[type="hidden"] + label::after { + content: ""; + position: absolute; + width: 10px; + height: 10px; + border-radius: 50%; + border: none; + top: 6px; + left: 6px; + transform: none; + -ms-transform: none; +} + +.form-check > input[type="checkbox"]:first-child:checked + label::after, +.form-check > input[type="checkbox"]:first-child:checked + input[type="hidden"] + label::after { + width: 8px; + height: 14px; + transform: translate(7px, 2px) rotate(45deg); + -ms-transform: translate(7px, 2px) rotate(45deg); +} + +.form-check-inline { + display: inline-block; +} + +.form-check-inline + .form-check-inline { + margin-left: .75rem; + margin-top: 6px; +} + +.form-check > input:first-child:checked + label::before, +.form-check > input:first-child:checked + input[type="hidden"] + label::before { + background-color: var(--md-sys-color-primary); + border-color: var(--md-sys-color-primary); +} + +/* Forms */ +textarea.form-control { + border-radius: 1.5rem !important; +} + +.form-control, +.form-select, +.form-control:disabled, +.form-control[readonly] { + color: var(--md-sys-color-on-surface); + background-color: var(--md-sys-color-surface-container-low); + border-color: var(--md-sys-color-outline-variant); + border-radius: 3rem !important; +} + +.form-control:focus, +.form-select:focus { + color: var(--md-sys-color-on-surface); + background-color: var(--md-sys-color-surface-container-lowest); + border-color: var(--md-sys-color-outline-variant); + outline: 0; + box-shadow: 0 0 0 0.25rem var(--md-sys-color-outline-variant); +} + +/* Navbar Components */ +.navbar-brand { + color: var(--md-sys-color-on-surface) !important; +} + +.nav-link { + transition: none !important; + padding: 0.5rem 1rem !important; + border: 1px transparent; +} + +.navbar-nav li { + flex: 1; +} + +.navbar-nav .nav-link { + color: var(--md-sys-color-on-surface-variant); +} + +.navbar-nav .nav-link:focus, +.navbar-nav .nav-link:hover { + color: var(--md-sys-color-on-secondary-container); + background-color: var(--md-sys-color-surface-3); + border-radius: 3rem; + font-weight: 500; + font-variation-settings: var(--md-sys-icon-fill-1); +} + +.navbar-nav .nav-link.active, +.navbar-nav .show>.nav-link { + color: var(--md-sys-color-on-secondary-container); + background-color: var(--md-sys-color-surface-5); + border-radius: 3rem; + font-weight: 500; + font-variation-settings: var(--md-sys-icon-fill-1); +} + +.menu-title { + padding: 0 1rem; +} + +.dropdown-menu { + margin: 0 1%; + padding: 1.5rem 0; + border-radius: 1rem; + color: var(--md-sys-color-on-surface); + background-color: var(--md-sys-color-surface-container); + border: 1px solid var(--md-sys-color-surface-5); + box-shadow: var(--md-sys-elevation-2); +} + +.dropdown-item { + color: var(--md-sys-color-on-surface); + padding: 0.25rem 1rem; +} + +.dropdown-item:focus, +.dropdown-item:hover { + color: var(--md-sys-color-on-surface); + background-color: var(--md-sys-color-surface-5); + border-radius: 3rem; + font-weight: 500; + font-variation-settings: var(--md-sys-icon-fill-1); +} + +.dropdown-item.active, +.dropdown-item:active { + color: var(--md-sys-color-on-surface); + background-color: var(--md-sys-color-surface-5); + border-radius: 3rem; + font-weight: 500; + font-variation-settings: var(--md-sys-icon-fill-1); +} + +/* list-group-item */ +.list-group-item { + color: var(--md-sys-color-on-surface); + background-color: var(--md-sys-color-surface-5); + border: 1px solid var(--md-sys-color-outline-variant); +} + +.list-group-item:first-child { + border-radius: 1rem 1rem 0rem 0rem; +} + +.list-group-item:last-child { + border-radius: 0rem 0rem 1rem 1rem; +} + +.list-group-item:only-child { + border-radius: 1rem 1rem 1rem 1rem; +} + +.list-group-item .btn { + padding: .375rem .5rem; +} + +/*Alert */ +.alert-container { + padding: 2rem 3rem; + border-radius: 3rem; + margin: 1rem 0rem 2rem; +} + +.alert-header { + display: flex !important; + justify-content: space-between; +} + +.alert-heading { + font-size: calc(1.275rem + .3vw); +} + +.alert-dismissible .btn-close { + position: relative; + padding: 0; +} + +.alert-danger { + color: var(--md-sys-color-on-error-container); + background-color: var(--md-sys-color-error-container); + border-color: transparent; +} \ No newline at end of file diff --git a/src/main/resources/static/css/theme/font.css b/src/main/resources/static/css/theme/font.css new file mode 100644 index 00000000..dfb1c1b8 --- /dev/null +++ b/src/main/resources/static/css/theme/font.css @@ -0,0 +1,22 @@ +@font-face { + font-family: 'Material Symbols Rounded'; + font-style: normal; + font-weight: 100 700; + src: url(../../fonts/google-symbol.woff2) format('woff2'); +} + +.material-symbols-rounded { + font-family: 'Material Symbols Rounded'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-feature-settings: 'liga'; + -webkit-font-smoothing: antialiased; +} \ No newline at end of file diff --git a/src/main/resources/static/css/theme/theme.css b/src/main/resources/static/css/theme/theme.css new file mode 100644 index 00000000..3c9565d1 --- /dev/null +++ b/src/main/resources/static/css/theme/theme.css @@ -0,0 +1,34 @@ +:where(html, .light-theme, .dark-theme), +.tokens, +:host { + /* Define surface colors based on primary color */ + --md-sys-color-surface-1: color-mix(in srgb, var(--md-sys-color-primary) 13%, rgba(0, 0, 0, 0.05) 5%); + --md-sys-color-surface-2: color-mix(in srgb, var(--md-sys-color-primary) 13%, rgba(0, 0, 0, 0.08) 5%); + --md-sys-color-surface-3: color-mix(in srgb, var(--md-sys-color-primary) 13%, rgba(0, 0, 0, 0.11) 5%); + --md-sys-color-surface-4: color-mix(in srgb, var(--md-sys-color-primary) 13%, rgba(0, 0, 0, 0.12) 5%); + --md-sys-color-surface-5: color-mix(in srgb, var(--md-sys-color-primary) 13%, rgba(0, 0, 0, 0.14) 5%); + /* Icon fill */ + --md-sys-icon-fill-0: 'FILL' 0, 'wght' 500; + --md-sys-icon-fill-1: 'FILL' 1, 'wght' 500; + /* Hover Color */ + --md-sys-state-hover-opacity: color-mix(in srgb, var(--md-sys-color-primary), rgba(0, 0, 0, 0) 80%); + /* Shadow */ + --md-sys-color-shadow: #000000; + --md-elevation-shadow-color-rgb: 0, 0, 0; + --md-elevation-shadow-color: var(--md-elevation-shadow-color-rgb); + /* Shadow Elevation*/ + --md-sys-elevation-0: 0px 0px 0px 0px rgb(var(--md-elevation-shadow-color), 0.2), 0px 0px 0px 0px rgb(var(--md-elevation-shadow-color), 0.14), 0px 0px 0px 0px rgb(var(--md-elevation-shadow-color), 0.12); + --md-sys-elevation-1: 0px 3px 1px -2px rgb(var(--md-elevation-shadow-color), 0.2), 0px 2px 2px 0px rgb(var(--md-elevation-shadow-color), 0.14), 0px 1px 5px 0px rgb(var(--md-elevation-shadow-color), 0.12); + --md-sys-elevation-2: 0px 2px 4px -1px rgb(var(--md-elevation-shadow-color), 0.2), 0px 4px 5px 0px rgb(var(--md-elevation-shadow-color), 0.14), 0px 1px 10px 0px rgb(var(--md-elevation-shadow-color), 0.12); + --md-sys-elevation-3: 0px 5px 5px -3px rgb(var(--md-elevation-shadow-color), 0.2), 0px 8px 10px 1px rgb(var(--md-elevation-shadow-color), 0.14), 0px 3px 14px 2px rgb(var(--md-elevation-shadow-color), 0.12); + --md-sys-elevation-4: 0px 5px 5px -3px rgb(var(--md-elevation-shadow-color) / 0.2), 0px 8px 10px 1px rgb(var(--md-elevation-shadow-color), 0.14), 0px 3px 14px 2px rgb(var(--md-elevation-shadow-color), 0.12); + --md-sys-elevation-5: 0px 8px 10px -6px rgb(var(--md-elevation-shadow-color), 0.2), 0px 16px 24px 2px rgb(var(--md-elevation-shadow-color), 0.14), 0px 6px 30px 5px rgb(var(--md-elevation-shadow-color), 0.12); +} + +.fill { + font-variation-settings: var(--md-sys-icon-fill-1); +} + +.no-fill { + font-variation-settings: var(--md-sys-icon-fill-0); +} \ No newline at end of file diff --git a/src/main/resources/static/css/theme/theme.dark.css b/src/main/resources/static/css/theme/theme.dark.css new file mode 100644 index 00000000..ad665788 --- /dev/null +++ b/src/main/resources/static/css/theme/theme.dark.css @@ -0,0 +1,73 @@ +:root { + /* Colors */ + --md-sys-color-primary: rgb(162 201 255); + --md-sys-color-surface-tint: rgb(162 201 255); + --md-sys-color-on-primary: rgb(0 49 92); + --md-sys-color-primary-container: rgb(0 118 208); + --md-sys-color-on-primary-container: rgb(255 255 255); + --md-sys-color-secondary: rgb(169 201 246); + --md-sys-color-on-secondary: rgb(12 49 87); + --md-sys-color-secondary-container: rgb(29 62 100); + --md-sys-color-on-secondary-container: rgb(180 210 255); + --md-sys-color-tertiary: rgb(193 194 248); + --md-sys-color-on-tertiary: rgb(42 44 88); + --md-sys-color-tertiary-container: rgb(110 112 161); + --md-sys-color-on-tertiary-container: rgb(255 255 255); + --md-sys-color-error: rgb(255 180 171); + --md-sys-color-on-error: rgb(105 0 5); + --md-sys-color-error-container: rgb(147 0 10); + --md-sys-color-on-error-container: rgb(255 218 214); + --md-sys-color-background: rgb(15 20 26); + --md-sys-color-on-background: rgb(223 226 235); + --md-sys-color-surface: rgb(15 20 26); + --md-sys-color-on-surface: rgb(223 226 235); + --md-sys-color-surface-variant: rgb(64 71 83); + --md-sys-color-on-surface-variant: rgb(192 199 213); + --md-sys-color-outline: rgb(138 145 158); + --md-sys-color-outline-variant: rgb(64 71 83); + --md-sys-color-shadow: rgb(0 0 0); + --md-sys-color-scrim: rgb(0 0 0); + --md-sys-color-inverse-surface: rgb(223 226 235); + --md-sys-color-inverse-on-surface: rgb(45 49 55); + --md-sys-color-inverse-primary: rgb(0 96 170); + --md-sys-color-primary-fixed: rgb(211 228 255); + --md-sys-color-on-primary-fixed: rgb(0 28 56); + --md-sys-color-primary-fixed-dim: rgb(162 201 255); + --md-sys-color-on-primary-fixed-variant: rgb(0 72 130); + --md-sys-color-secondary-fixed: rgb(211 228 255); + --md-sys-color-on-secondary-fixed: rgb(0 28 56); + --md-sys-color-secondary-fixed-dim: rgb(169 201 246); + --md-sys-color-on-secondary-fixed-variant: rgb(40 72 111); + --md-sys-color-tertiary-fixed: rgb(225 224 255); + --md-sys-color-on-tertiary-fixed: rgb(20 22 66); + --md-sys-color-tertiary-fixed-dim: rgb(193 194 248); + --md-sys-color-on-tertiary-fixed-variant: rgb(64 67 112); + --md-sys-color-surface-dim: rgb(15 20 26); + --md-sys-color-surface-bright: rgb(53 57 64); + --md-sys-color-surface-container-lowest: rgb(10 14 20); + --md-sys-color-surface-container-low: rgb(24 28 34); + --md-sys-color-surface-container: rgb(28 32 38); + --md-sys-color-surface-container-high: rgb(38 42 49); + --md-sys-color-surface-container-highest: rgb(49 53 60); + /* Tools Color */ + --md-nav-section-color-opacity: 1; + --md-nav-on-section-color-opacity: 1; + --md-nav-section-color-sign: rgba(25, 101, 212, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-sign: rgba(28, 27, 31, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-organize: rgba(120, 130, 255, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-organize: rgba(28, 27, 31, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-convert: rgba(25, 177, 212, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-convert: rgba(28, 27, 31, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-security: rgba(255, 120, 146, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-security: rgba(28, 27, 31, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-other: rgba(72, 189, 84, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-other: rgba(28, 27, 31, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-advance: rgba(245, 84, 84, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-advance: rgba(28, 27, 31, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-image: rgba(212, 172, 25, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-image: rgba(28, 27, 31, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-word: rgba(61, 153, 245, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-word: rgba(28, 27, 31, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-ppt: rgba(255, 128, 0, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-ppt: rgba(28, 27, 31, var(--md-nav-on-section-color-opacity)); +} \ No newline at end of file diff --git a/src/main/resources/static/css/theme/theme.light.css b/src/main/resources/static/css/theme/theme.light.css new file mode 100644 index 00000000..74101fe2 --- /dev/null +++ b/src/main/resources/static/css/theme/theme.light.css @@ -0,0 +1,73 @@ +:root { + /* Colors */ + --md-sys-color-primary: rgb(0 96 170); + --md-sys-color-surface-tint: rgb(0 96 170); + --md-sys-color-on-primary: rgb(255 255 255); + --md-sys-color-primary-container: rgb(80 163 255); + --md-sys-color-on-primary-container: rgb(0 20 43); + --md-sys-color-secondary: rgb(65 96 136); + --md-sys-color-on-secondary: rgb(255 255 255); + --md-sys-color-secondary-container: rgb(188 215 255); + --md-sys-color-on-secondary-container: rgb(32 65 103); + --md-sys-color-tertiary: rgb(88 90 138); + --md-sys-color-on-tertiary: rgb(255 255 255); + --md-sys-color-tertiary-container: rgb(151 153 205); + --md-sys-color-on-tertiary-container: rgb(7 9 55); + --md-sys-color-error: rgb(186 26 26); + --md-sys-color-on-error: rgb(255 255 255); + --md-sys-color-error-container: rgb(255 218 214); + --md-sys-color-on-error-container: rgb(65 0 2); + --md-sys-color-background: rgb(248 249 255); + --md-sys-color-on-background: rgb(24 28 34); + --md-sys-color-surface: rgb(248 249 255); + --md-sys-color-on-surface: rgb(24 28 34); + --md-sys-color-surface-variant: rgb(220 227 241); + --md-sys-color-on-surface-variant: rgb(64 71 83); + --md-sys-color-outline: rgb(112 119 132); + --md-sys-color-outline-variant: rgb(192 199 213); + --md-sys-color-shadow: rgb(0 0 0); + --md-sys-color-scrim: rgb(0 0 0); + --md-sys-color-inverse-surface: rgb(45 49 55); + --md-sys-color-inverse-on-surface: rgb(238 241 250); + --md-sys-color-inverse-primary: rgb(162 201 255); + --md-sys-color-primary-fixed: rgb(211 228 255); + --md-sys-color-on-primary-fixed: rgb(0 28 56); + --md-sys-color-primary-fixed-dim: rgb(162 201 255); + --md-sys-color-on-primary-fixed-variant: rgb(0 72 130); + --md-sys-color-secondary-fixed: rgb(211 228 255); + --md-sys-color-on-secondary-fixed: rgb(0 28 56); + --md-sys-color-secondary-fixed-dim: rgb(169 201 246); + --md-sys-color-on-secondary-fixed-variant: rgb(40 72 111); + --md-sys-color-tertiary-fixed: rgb(225 224 255); + --md-sys-color-on-tertiary-fixed: rgb(20 22 66); + --md-sys-color-tertiary-fixed-dim: rgb(193 194 248); + --md-sys-color-on-tertiary-fixed-variant: rgb(64 67 112); + --md-sys-color-surface-dim: rgb(215 218 227); + --md-sys-color-surface-bright: rgb(248 249 255); + --md-sys-color-surface-container-lowest: rgb(255 255 255); + --md-sys-color-surface-container-low: rgb(241 243 253); + --md-sys-color-surface-container: rgb(235 238 247); + --md-sys-color-surface-container-high: rgb(229 232 241); + --md-sys-color-surface-container-highest: rgb(223 226 235); + /* Tools Color */ + --md-nav-section-color-opacity: 1; + --md-nav-on-section-color-opacity: 1; + --md-nav-section-color-sign: rgba(25, 101, 212, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-sign: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-organize: rgba(120, 130, 255, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-organize: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-convert: rgba(25, 177, 212, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-convert: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-security: rgba(255, 120, 146, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-security: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-other: rgba(72, 189, 84, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-other: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-advance: rgba(245, 84, 84, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-advance: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-image: rgba(212, 172, 25, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-image: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-word: rgba(61, 153, 245, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-word: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity)); + --md-nav-section-color-ppt: rgba(255, 128, 0, var(--md-nav-section-color-opacity)); + --md-nav-on-section-color-ppt: rgba(255, 251, 254, var(--md-nav-on-section-color-opacity)); +} \ No newline at end of file diff --git a/src/main/resources/static/fonts/google-symbol.woff2 b/src/main/resources/static/fonts/google-symbol.woff2 new file mode 100644 index 00000000..e96cb008 Binary files /dev/null and b/src/main/resources/static/fonts/google-symbol.woff2 differ diff --git a/src/main/resources/static/images/add-page-numbers.svg b/src/main/resources/static/images/add-page-numbers.svg deleted file mode 100644 index 3ee3396c..00000000 --- a/src/main/resources/static/images/add-page-numbers.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/adjust-contrast.svg b/src/main/resources/static/images/adjust-contrast.svg deleted file mode 100644 index fea76d92..00000000 --- a/src/main/resources/static/images/adjust-contrast.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/arrow-clockwise.svg b/src/main/resources/static/images/arrow-clockwise.svg deleted file mode 100644 index b072eb09..00000000 --- a/src/main/resources/static/images/arrow-clockwise.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/arrow-left-right.svg b/src/main/resources/static/images/arrow-left-right.svg deleted file mode 100644 index 8aabd7be..00000000 --- a/src/main/resources/static/images/arrow-left-right.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/award.svg b/src/main/resources/static/images/award.svg deleted file mode 100644 index 8f572ff0..00000000 --- a/src/main/resources/static/images/award.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/blank-file.svg b/src/main/resources/static/images/blank-file.svg deleted file mode 100644 index 3562fb2b..00000000 --- a/src/main/resources/static/images/blank-file.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/book-opened.svg b/src/main/resources/static/images/book-opened.svg deleted file mode 100644 index e642d31a..00000000 --- a/src/main/resources/static/images/book-opened.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/card-list.svg b/src/main/resources/static/images/card-list.svg deleted file mode 100644 index 3dc5d429..00000000 --- a/src/main/resources/static/images/card-list.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/clipboard-data.svg b/src/main/resources/static/images/clipboard-data.svg deleted file mode 100644 index b4fcb336..00000000 --- a/src/main/resources/static/images/clipboard-data.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/crop.svg b/src/main/resources/static/images/crop.svg deleted file mode 100644 index b7e17490..00000000 --- a/src/main/resources/static/images/crop.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/droplet.svg b/src/main/resources/static/images/droplet.svg deleted file mode 100644 index 2b405d68..00000000 --- a/src/main/resources/static/images/droplet.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/eraser-fill.svg b/src/main/resources/static/images/eraser-fill.svg deleted file mode 100644 index 10959b3d..00000000 --- a/src/main/resources/static/images/eraser-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/extract.svg b/src/main/resources/static/images/extract.svg deleted file mode 100644 index d21f03eb..00000000 --- a/src/main/resources/static/images/extract.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/eye-slash.svg b/src/main/resources/static/images/eye-slash.svg deleted file mode 100644 index c5208375..00000000 --- a/src/main/resources/static/images/eye-slash.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/eye.svg b/src/main/resources/static/images/eye.svg deleted file mode 100644 index 412ff692..00000000 --- a/src/main/resources/static/images/eye.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/file-earmark-pdf.svg b/src/main/resources/static/images/file-earmark-pdf.svg deleted file mode 100644 index 52da96fe..00000000 --- a/src/main/resources/static/images/file-earmark-pdf.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/file-earmark-ppt.svg b/src/main/resources/static/images/file-earmark-ppt.svg deleted file mode 100644 index bedf5526..00000000 --- a/src/main/resources/static/images/file-earmark-ppt.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/file-earmark-richtext.svg b/src/main/resources/static/images/file-earmark-richtext.svg deleted file mode 100644 index 35af1467..00000000 --- a/src/main/resources/static/images/file-earmark-richtext.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/file-earmark-word.svg b/src/main/resources/static/images/file-earmark-word.svg deleted file mode 100644 index 7186b69e..00000000 --- a/src/main/resources/static/images/file-earmark-word.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/file-earmark-x.svg b/src/main/resources/static/images/file-earmark-x.svg deleted file mode 100644 index bedb970d..00000000 --- a/src/main/resources/static/images/file-earmark-x.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/file-pdf.svg b/src/main/resources/static/images/file-pdf.svg deleted file mode 100644 index e8ba0a15..00000000 --- a/src/main/resources/static/images/file-pdf.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/file-zip.svg b/src/main/resources/static/images/file-zip.svg deleted file mode 100644 index 3da93c8c..00000000 --- a/src/main/resources/static/images/file-zip.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/file.svg b/src/main/resources/static/images/file.svg deleted file mode 100644 index c3d086b9..00000000 --- a/src/main/resources/static/images/file.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/filetype-html.svg b/src/main/resources/static/images/filetype-html.svg deleted file mode 100644 index 35d72185..00000000 --- a/src/main/resources/static/images/filetype-html.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/filetype-txt.svg b/src/main/resources/static/images/filetype-txt.svg deleted file mode 100644 index 6fae02a0..00000000 --- a/src/main/resources/static/images/filetype-txt.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/filetype-xml.svg b/src/main/resources/static/images/filetype-xml.svg deleted file mode 100644 index d8226455..00000000 --- a/src/main/resources/static/images/filetype-xml.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/flatten.svg b/src/main/resources/static/images/flatten.svg deleted file mode 100644 index 944240cf..00000000 --- a/src/main/resources/static/images/flatten.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - diff --git a/src/main/resources/static/images/fonts.svg b/src/main/resources/static/images/fonts.svg deleted file mode 100644 index 3afc7d2e..00000000 --- a/src/main/resources/static/images/fonts.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/gear.svg b/src/main/resources/static/images/gear.svg deleted file mode 100644 index c11dbc1d..00000000 --- a/src/main/resources/static/images/gear.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/html.svg b/src/main/resources/static/images/html.svg deleted file mode 100644 index 35d72185..00000000 --- a/src/main/resources/static/images/html.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/image.svg b/src/main/resources/static/images/image.svg deleted file mode 100644 index 1e1964b4..00000000 --- a/src/main/resources/static/images/image.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/images.svg b/src/main/resources/static/images/images.svg deleted file mode 100644 index b35ecebc..00000000 --- a/src/main/resources/static/images/images.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/info.svg b/src/main/resources/static/images/info.svg deleted file mode 100644 index 8f48f86c..00000000 --- a/src/main/resources/static/images/info.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/js.svg b/src/main/resources/static/images/js.svg deleted file mode 100644 index 8b198bfc..00000000 --- a/src/main/resources/static/images/js.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/layout-split.svg b/src/main/resources/static/images/layout-split.svg deleted file mode 100644 index 71f33d2e..00000000 --- a/src/main/resources/static/images/layout-split.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/lock.svg b/src/main/resources/static/images/lock.svg deleted file mode 100644 index b50a68ef..00000000 --- a/src/main/resources/static/images/lock.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/markdown.svg b/src/main/resources/static/images/markdown.svg deleted file mode 100644 index ca5cd597..00000000 --- a/src/main/resources/static/images/markdown.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/no-chat.svg b/src/main/resources/static/images/no-chat.svg deleted file mode 100644 index 8db22038..00000000 --- a/src/main/resources/static/images/no-chat.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/overlay.svg b/src/main/resources/static/images/overlay.svg deleted file mode 100644 index 393ce40c..00000000 --- a/src/main/resources/static/images/overlay.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/page-layout.svg b/src/main/resources/static/images/page-layout.svg deleted file mode 100644 index bc505957..00000000 --- a/src/main/resources/static/images/page-layout.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/pdf-csv.svg b/src/main/resources/static/images/pdf-csv.svg deleted file mode 100644 index 95d68c10..00000000 --- a/src/main/resources/static/images/pdf-csv.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/static/images/pipeline.svg b/src/main/resources/static/images/pipeline.svg deleted file mode 100644 index 48722d0c..00000000 --- a/src/main/resources/static/images/pipeline.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/sanitize.svg b/src/main/resources/static/images/sanitize.svg deleted file mode 100644 index fc4dd2f9..00000000 --- a/src/main/resources/static/images/sanitize.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/main/resources/static/images/scale-pages.svg b/src/main/resources/static/images/scale-pages.svg deleted file mode 100644 index dc0acc3c..00000000 --- a/src/main/resources/static/images/scale-pages.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/scales.svg b/src/main/resources/static/images/scales.svg deleted file mode 100644 index 61b9c381..00000000 --- a/src/main/resources/static/images/scales.svg +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - -image/svg+xmlOpenclipartscales of justice2009-06-26T04:35:18https://openclipart.org/detail/26849/scales-of-justice-by-johnny_automaticjohnny_automaticjusticelawmeasurementscalessilhouetteweight diff --git a/src/main/resources/static/images/scanner.svg b/src/main/resources/static/images/scanner.svg deleted file mode 100644 index 4dca053b..00000000 --- a/src/main/resources/static/images/scanner.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/search.svg b/src/main/resources/static/images/search.svg deleted file mode 100644 index d3dc7ca1..00000000 --- a/src/main/resources/static/images/search.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/shield-check.svg b/src/main/resources/static/images/shield-check.svg deleted file mode 100644 index ecbf5439..00000000 --- a/src/main/resources/static/images/shield-check.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/shield-lock.svg b/src/main/resources/static/images/shield-lock.svg deleted file mode 100644 index ff384250..00000000 --- a/src/main/resources/static/images/shield-lock.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/sign.svg b/src/main/resources/static/images/sign.svg deleted file mode 100644 index 013acc25..00000000 --- a/src/main/resources/static/images/sign.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/single-page.svg b/src/main/resources/static/images/single-page.svg deleted file mode 100644 index 4f57d79b..00000000 --- a/src/main/resources/static/images/single-page.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/sort-numeric-down.svg b/src/main/resources/static/images/sort-numeric-down.svg deleted file mode 100644 index 57a3fb03..00000000 --- a/src/main/resources/static/images/sort-numeric-down.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/stamp.svg b/src/main/resources/static/images/stamp.svg deleted file mode 100644 index aa35a6cb..00000000 --- a/src/main/resources/static/images/stamp.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/star-fill.svg b/src/main/resources/static/images/star-fill.svg deleted file mode 100644 index de09c4aa..00000000 --- a/src/main/resources/static/images/star-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/star.svg b/src/main/resources/static/images/star.svg deleted file mode 100644 index 742b5e25..00000000 --- a/src/main/resources/static/images/star.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/suit-heart-fill.svg b/src/main/resources/static/images/suit-heart-fill.svg deleted file mode 100644 index 74a0f27a..00000000 --- a/src/main/resources/static/images/suit-heart-fill.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/tools.svg b/src/main/resources/static/images/tools.svg deleted file mode 100644 index fcc8362f..00000000 --- a/src/main/resources/static/images/tools.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/trash.svg b/src/main/resources/static/images/trash.svg deleted file mode 100644 index 4d0ee364..00000000 --- a/src/main/resources/static/images/trash.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/union.svg b/src/main/resources/static/images/union.svg deleted file mode 100644 index e694d774..00000000 --- a/src/main/resources/static/images/union.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/unlock.svg b/src/main/resources/static/images/unlock.svg deleted file mode 100644 index 8eb0925d..00000000 --- a/src/main/resources/static/images/unlock.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/images/url.svg b/src/main/resources/static/images/url.svg deleted file mode 100644 index df35bc8a..00000000 --- a/src/main/resources/static/images/url.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/main/resources/static/images/wrench.svg b/src/main/resources/static/images/wrench.svg deleted file mode 100644 index bef07136..00000000 --- a/src/main/resources/static/images/wrench.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/main/resources/static/js/darkmode.js b/src/main/resources/static/js/darkmode.js index cb119a8a..08c0c380 100644 --- a/src/main/resources/static/js/darkmode.js +++ b/src/main/resources/static/js/darkmode.js @@ -8,7 +8,6 @@ var elements = { darkModeIcon: null, searchBar: null, formControls: null, - navbar: null, navIcons: null, navDropdownMenus: null, }; @@ -20,8 +19,6 @@ function getElements() { elements.darkModeIcon = document.getElementById("dark-mode-icon"); elements.searchBar = document.getElementById("searchBar"); elements.formControls = document.querySelectorAll(".form-control"); - elements.navbar = document.querySelectorAll("nav.navbar"); - elements.navIcons = document.querySelectorAll("nav .icon, .navbar-icon"); elements.navDropdownMenus = document.querySelectorAll(".dropdown-menu"); } function setMode(mode) { @@ -42,67 +39,23 @@ function setMode(mode) { if (mode === "on") { if (elements && elements.darkModeIcon) { - elements.darkModeIcon.src = "moon.svg"; - } - if (elements && elements.searchBar) { - elements.searchBar.classList.add("dark-mode-search"); - } - if (elements && elements.formControls) { - elements.formControls.forEach((input) => input.classList.add("bg-dark", "text-white")); - } - if (elements && elements.navbar) { - elements.navbar.forEach((navElement) => { - navElement.classList.remove("navbar-light", "bg-light"); - navElement.classList.add("navbar-dark", "bg-dark"); - }); - } - if (elements && elements.navDropdownMenus) { - elements.navDropdownMenus.forEach((menu) => menu.classList.add("dropdown-menu-dark")); - } - if (elements && elements.navIcons) { - elements.navIcons.forEach((icon) => (icon.style.filter = "invert(1)")); + elements.darkModeIcon.textContent = "dark_mode"; } var tables = document.querySelectorAll(".table"); tables.forEach((table) => { table.classList.add("table-dark"); }); - if (jumbotron) { - jumbotron.classList.add("bg-dark"); - jumbotron.classList.remove("bg-light"); - } } else if (mode === "off") { if (elements && elements.darkModeIcon) { - elements.darkModeIcon.src = "sun.svg"; - } - if (elements && elements.searchBar) { - elements.searchBar.classList.remove("dark-mode-search"); - } - if (elements && elements.formControls) { - elements.formControls.forEach((input) => input.classList.remove("bg-dark", "text-white")); - } - if (elements && elements.navbar) { - elements.navbar.forEach((navElement) => { - navElement.classList.remove("navbar-dark", "bg-dark"); - navElement.classList.add("navbar-light", "bg-light"); - }); - } - if (elements && elements.navDropdownMenus) { - elements.navDropdownMenus.forEach((menu) => menu.classList.remove("dropdown-menu-dark")); - } - if (elements && elements.navIcons) { - elements.navIcons.forEach((icon) => (icon.style.filter = "none")); + elements.darkModeIcon.textContent = "light_mode"; } var tables = document.querySelectorAll(".table-dark"); tables.forEach((table) => { table.classList.remove("table-dark"); }); - if (jumbotron) { - jumbotron.classList.remove("bg-dark"); - jumbotron.classList.add("bg-light"); - } } else if (mode === "rainbow") { if (elements && elements.darkModeIcon) { - elements.darkModeIcon.src = "rainbow.svg"; + elements.darkModeIcon.textContent = "looks"; } } } @@ -116,6 +69,8 @@ function toggleDarkMode() { } lastToggleTime = currentTime; + document.body.classList.add("transition-theme"); + if (toggleCount >= 18) { localStorage.setItem("dark-mode", "rainbow"); setMode("rainbow"); @@ -147,4 +102,4 @@ document.addEventListener("DOMContentLoaded", function () { toggleDarkMode(); }); } -}); +}); \ No newline at end of file diff --git a/src/main/resources/static/js/homecard.js b/src/main/resources/static/js/homecard.js index c461af3c..818e62e9 100644 --- a/src/main/resources/static/js/homecard.js +++ b/src/main/resources/static/js/homecard.js @@ -23,15 +23,17 @@ function filterCards() { } function toggleFavorite(element) { - var img = element.querySelector("img"); + var span = element.querySelector("span.material-symbols-rounded"); var card = element.closest(".feature-card"); var cardId = card.id; - if (img.src.endsWith("star.svg")) { - img.src = "images/star-fill.svg"; + if (span.classList.contains("no-fill")) { + span.classList.remove("no-fill"); + span.classList.add("fill"); card.classList.add("favorite"); localStorage.setItem(cardId, "favorite"); } else { - img.src = "images/star.svg"; + span.classList.remove("fill"); + span.classList.add("no-fill"); card.classList.remove("favorite"); localStorage.removeItem(cardId); } @@ -40,6 +42,7 @@ function toggleFavorite(element) { filterCards(); } + function reorderCards() { var container = document.querySelector(".features-container"); var cards = Array.from(container.getElementsByClassName("feature-card")); @@ -64,13 +67,15 @@ function reorderCards() { container.appendChild(card); }); } + function initializeCards() { var cards = document.querySelectorAll(".feature-card"); cards.forEach(function (card) { var cardId = card.id; - var img = card.querySelector(".favorite-icon img"); + var span = card.querySelector(".favorite-icon span.material-symbols-rounded"); if (localStorage.getItem(cardId) === "favorite") { - img.src = "images/star-fill.svg"; + span.classList.remove("no-fill"); + span.classList.add("fill"); card.classList.add("favorite"); } }); @@ -80,3 +85,15 @@ function initializeCards() { } window.onload = initializeCards; + + document.addEventListener("DOMContentLoaded", function() { + const materialIcons = new FontFaceObserver('Material Symbols Rounded'); + + materialIcons.load().then(() => { + document.querySelectorAll('.feature-card.hidden').forEach(el => { + el.classList.remove('hidden'); + }); + }).catch(() => { + console.error('Material Symbols Rounded font failed to load.'); + }); + }); diff --git a/src/main/resources/static/js/multitool/PdfActionsManager.js b/src/main/resources/static/js/multitool/PdfActionsManager.js index 163dff3a..8135bed3 100644 --- a/src/main/resources/static/js/multitool/PdfActionsManager.js +++ b/src/main/resources/static/js/multitool/PdfActionsManager.js @@ -92,44 +92,35 @@ class PdfActionsManager { const rightDirection = this.pageDirection === "rtl" ? "left" : "right"; const buttonContainer = document.createElement("div"); - buttonContainer.classList.add("pdf-actions_button-container", "hide-on-drag"); + buttonContainer.classList.add("btn-group", "pdf-actions_button-container", "hide-on-drag"); const moveUp = document.createElement("button"); moveUp.classList.add("pdf-actions_move-left-button", "btn", "btn-secondary"); - moveUp.innerHTML = ``; + moveUp.innerHTML = `arrow_${leftDirection}_alt`; moveUp.onclick = this.moveUpButtonCallback; buttonContainer.appendChild(moveUp); const moveDown = document.createElement("button"); moveDown.classList.add("pdf-actions_move-right-button", "btn", "btn-secondary"); - moveDown.innerHTML = ``; + moveDown.innerHTML = `arrow_${rightDirection}_alt`; moveDown.onclick = this.moveDownButtonCallback; buttonContainer.appendChild(moveDown); const rotateCCW = document.createElement("button"); rotateCCW.classList.add("btn", "btn-secondary"); - rotateCCW.innerHTML = ` - - - `; + rotateCCW.innerHTML = `rotate_left`; rotateCCW.onclick = this.rotateCCWButtonCallback; buttonContainer.appendChild(rotateCCW); const rotateCW = document.createElement("button"); rotateCW.classList.add("btn", "btn-secondary"); - rotateCW.innerHTML = ` - - - `; + rotateCW.innerHTML = `rotate_right`; rotateCW.onclick = this.rotateCWButtonCallback; buttonContainer.appendChild(rotateCW); const deletePage = document.createElement("button"); deletePage.classList.add("btn", "btn-danger"); - deletePage.innerHTML = ` - - - `; + deletePage.innerHTML = `delete`; deletePage.onclick = this.deletePageButtonCallback; buttonContainer.appendChild(deletePage); @@ -145,10 +136,7 @@ class PdfActionsManager { const insertFileButton = document.createElement("button"); insertFileButton.classList.add("btn", "btn-primary", "pdf-actions_insert-file-button"); - insertFileButton.innerHTML = ` - - - `; + insertFileButton.innerHTML = `add`; insertFileButton.onclick = this.insertFileButtonCallback; insertFileButtonContainer.appendChild(insertFileButton); @@ -164,10 +152,7 @@ class PdfActionsManager { const insertFileButtonRight = document.createElement("button"); insertFileButtonRight.classList.add("btn", "btn-primary", "pdf-actions_insert-file-button"); - insertFileButtonRight.innerHTML = ` - - - insertFileButtonRight`; + insertFileButtonRight.innerHTML = `add`; insertFileButtonRight.onclick = () => addPdfs(); insertFileButtonRightContainer.appendChild(insertFileButtonRight); diff --git a/src/main/resources/static/js/pipeline.js b/src/main/resources/static/js/pipeline.js index afe1d4d7..1c57dfd9 100644 --- a/src/main/resources/static/js/pipeline.js +++ b/src/main/resources/static/js/pipeline.js @@ -251,14 +251,14 @@ document.getElementById("addOperationBtn").addEventListener("click", function ()
${selectedOperation}
- - + + - +
`; diff --git a/src/main/resources/static/js/search.js b/src/main/resources/static/js/search.js index df9967d6..a5b9d70f 100644 --- a/src/main/resources/static/js/search.js +++ b/src/main/resources/static/js/search.js @@ -1,9 +1,3 @@ -// Toggle search bar when the search icon is clicked -document.querySelector("#search-icon").addEventListener("click", function (e) { - e.preventDefault(); - var searchBar = document.querySelector("#navbarSearch"); - searchBar.classList.toggle("show"); -}); window.onload = function () { var items = document.querySelectorAll(".dropdown-item, .nav-link"); @@ -39,15 +33,14 @@ document.querySelector("#navbarSearchInput").addEventListener("input", function // Clear any previous results resultsBox.innerHTML = ""; - - // Check if search text is not empty if (searchText !== "") { - items.forEach(function (item) { - var titleElement = item.querySelector(".icon-text"); - var iconElement = item.querySelector(".icon"); - var itemHref = item.getAttribute("href"); - var tags = item.getAttribute("data-bs-tags") || ""; // If no tags, default to empty string + items.forEach(function (item) { + var titleElement = item.querySelector(".icon-text"); + var iconElement = item.querySelector(".material-symbols-rounded, .icon"); + var itemHref = item.getAttribute("href"); + var tags = item.getAttribute("data-bs-tags") || ""; // If no tags, default to empty string + if (titleElement && iconElement && itemHref !== "#") { var title = titleElement.innerText; if ( @@ -58,11 +51,10 @@ document.querySelector("#navbarSearchInput").addEventListener("input", function result.href = itemHref; result.classList.add("dropdown-item"); - var resultIcon = document.createElement("img"); - resultIcon.src = iconElement.src; - resultIcon.alt = "icon"; - resultIcon.classList.add("icon"); - result.appendChild(resultIcon); + var resultIcon = document.createElement("span"); + resultIcon.classList.add("material-symbols-rounded"); + resultIcon.textContent = iconElement.textContent; + result.appendChild(resultIcon); var resultText = document.createElement("span"); resultText.textContent = title; @@ -78,3 +70,4 @@ document.querySelector("#navbarSearchInput").addEventListener("input", function // Set the width of the search results box to the maximum width resultsBox.style.width = window.navItemMaxWidth + "px"; }); + diff --git a/src/main/resources/static/js/thirdParty/fontfaceobserver.standalone.js b/src/main/resources/static/js/thirdParty/fontfaceobserver.standalone.js new file mode 100644 index 00000000..66c5cd69 --- /dev/null +++ b/src/main/resources/static/js/thirdParty/fontfaceobserver.standalone.js @@ -0,0 +1,8 @@ +/* Font Face Observer v2.1.0 - © Bram Stein. License: BSD-3-Clause */(function(){function l(a,b){document.addEventListener?a.addEventListener("scroll",b,!1):a.attachEvent("scroll",b)}function m(a){document.body?a():document.addEventListener?document.addEventListener("DOMContentLoaded",function c(){document.removeEventListener("DOMContentLoaded",c);a()}):document.attachEvent("onreadystatechange",function k(){if("interactive"==document.readyState||"complete"==document.readyState)document.detachEvent("onreadystatechange",k),a()})};function t(a){this.a=document.createElement("div");this.a.setAttribute("aria-hidden","true");this.a.appendChild(document.createTextNode(a));this.b=document.createElement("span");this.c=document.createElement("span");this.h=document.createElement("span");this.f=document.createElement("span");this.g=-1;this.b.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.c.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;"; +this.f.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;";this.h.style.cssText="display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;";this.b.appendChild(this.h);this.c.appendChild(this.f);this.a.appendChild(this.b);this.a.appendChild(this.c)} +function u(a,b){a.a.style.cssText="max-width:none;min-width:20px;min-height:20px;display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;white-space:nowrap;font-synthesis:none;font:"+b+";"}function z(a){var b=a.a.offsetWidth,c=b+100;a.f.style.width=c+"px";a.c.scrollLeft=c;a.b.scrollLeft=a.b.scrollWidth+100;return a.g!==b?(a.g=b,!0):!1}function A(a,b){function c(){var a=k;z(a)&&a.a.parentNode&&b(a.g)}var k=a;l(a.b,c);l(a.c,c);z(a)};function B(a,b){var c=b||{};this.family=a;this.style=c.style||"normal";this.weight=c.weight||"normal";this.stretch=c.stretch||"normal"}var C=null,D=null,E=null,F=null;function G(){if(null===D)if(J()&&/Apple/.test(window.navigator.vendor)){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))(?:\.([0-9]+))/.exec(window.navigator.userAgent);D=!!a&&603>parseInt(a[1],10)}else D=!1;return D}function J(){null===F&&(F=!!document.fonts);return F} +function K(){if(null===E){var a=document.createElement("div");try{a.style.font="condensed 100px sans-serif"}catch(b){}E=""!==a.style.font}return E}function L(a,b){return[a.style,a.weight,K()?a.stretch:"","100px",b].join(" ")} +B.prototype.load=function(a,b){var c=this,k=a||"BESbswy",r=0,n=b||3E3,H=(new Date).getTime();return new Promise(function(a,b){if(J()&&!G()){var M=new Promise(function(a,b){function e(){(new Date).getTime()-H>=n?b(Error(""+n+"ms timeout exceeded")):document.fonts.load(L(c,'"'+c.family+'"'),k).then(function(c){1<=c.length?a():setTimeout(e,25)},b)}e()}),N=new Promise(function(a,c){r=setTimeout(function(){c(Error(""+n+"ms timeout exceeded"))},n)});Promise.race([N,M]).then(function(){clearTimeout(r);a(c)}, +b)}else m(function(){function v(){var b;if(b=-1!=f&&-1!=g||-1!=f&&-1!=h||-1!=g&&-1!=h)(b=f!=g&&f!=h&&g!=h)||(null===C&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),C=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=C&&(f==w&&g==w&&h==w||f==x&&g==x&&h==x||f==y&&g==y&&h==y)),b=!b;b&&(d.parentNode&&d.parentNode.removeChild(d),clearTimeout(r),a(c))}function I(){if((new Date).getTime()-H>=n)d.parentNode&&d.parentNode.removeChild(d),b(Error(""+ +n+"ms timeout exceeded"));else{var a=document.hidden;if(!0===a||void 0===a)f=e.a.offsetWidth,g=p.a.offsetWidth,h=q.a.offsetWidth,v();r=setTimeout(I,50)}}var e=new t(k),p=new t(k),q=new t(k),f=-1,g=-1,h=-1,w=-1,x=-1,y=-1,d=document.createElement("div");d.dir="ltr";u(e,L(c,"sans-serif"));u(p,L(c,"serif"));u(q,L(c,"monospace"));d.appendChild(e.a);d.appendChild(p.a);d.appendChild(q.a);document.body.appendChild(d);w=e.a.offsetWidth;x=p.a.offsetWidth;y=q.a.offsetWidth;I();A(e,function(a){f=a;v()});u(e, +L(c,'"'+c.family+'",sans-serif'));A(p,function(a){g=a;v()});u(p,L(c,'"'+c.family+'",serif'));A(q,function(a){h=a;v()});u(q,L(c,'"'+c.family+'",monospace'))})})};"object"===typeof module?module.exports=B:(window.FontFaceObserver=B,window.FontFaceObserver.prototype.load=B.prototype.load);}()); diff --git a/src/main/resources/templates/about.html b/src/main/resources/templates/about.html index 2870fb41..c29d2ffa 100644 --- a/src/main/resources/templates/about.html +++ b/src/main/resources/templates/about.html @@ -11,7 +11,7 @@

-
+
diff --git a/src/main/resources/templates/account.html b/src/main/resources/templates/account.html index e8ed623a..c82c97cb 100644 --- a/src/main/resources/templates/account.html +++ b/src/main/resources/templates/account.html @@ -1,23 +1,24 @@ - - + + + - + - - -
-
- -

-
-
-
+ + +
+
+ +

+
+
+
- -

User Settings

-
- + +

User Settings

+
Default message if not found
@@ -33,251 +34,267 @@
Default message if not found
-
- -

User!

- + + +

User!

+ - - -
-
- - -
-
- - -
-
- -
-
+
+ +

Change Username?

+
+
+ + +
+
+ + +
+
+ +
+
-
+ +

Change Password?

+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
- -

Change Password?

-
-
- - -
-
- - -
-
- - -
-
- -
-
-
- -
-
-
-
- -
- - - -
+ +

API Key

+
+
+
+
+ +
+ + +
+
- + }); + -
+

Sync browser settings with Account

+
+

Settings Comparison:

+ + + + + + + + + + + +
PropertyAccount SettingWeb Browser Setting
-

Sync browser settings with Account

-
-

Settings Comparison:

- - - - - - - - - - - -
PropertyAccount SettingWeb Browser Setting
- -
- - -
+
+ +
+
- - + + document.getElementById('syncToBrowser').addEventListener('click', function () { + // First, clear the local storage + localStorage.clear(); + + // Then, set the account settings to local storage + for (let key in accountSettings) { + if (key !== 'debug' && key !== '0' && key !== '1') { // Only sync non-ignored keys + localStorage.setItem(key, accountSettings[key]); + } + } + location.reload(); // Refresh the page after sync + }); + + document.getElementById('syncToAccount').addEventListener('click', function () { + let form = document.createElement("form"); + form.method = "POST"; + form.action = "api/v1/user/updateUserSettings"; // Your endpoint URL + + for (let i = 0; i < localStorage.length; i++) { + const key = localStorage.key(i); + if (key !== 'debug' && key !== '0' && key !== '1') { // Only send non-ignored keys + let hiddenField = document.createElement("input"); + hiddenField.type = "hidden"; + hiddenField.name = key; + hiddenField.value = localStorage.getItem(key); + form.appendChild(hiddenField); + } + } + + document.body.appendChild(form); + form.submit(); + }); + + }); + +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/addUsers.html b/src/main/resources/templates/addUsers.html index d5fb14ee..8eda8eab 100644 --- a/src/main/resources/templates/addUsers.html +++ b/src/main/resources/templates/addUsers.html @@ -12,7 +12,7 @@

-
+

Admin User Control Settings

diff --git a/src/main/resources/templates/auto-split-pdf.html b/src/main/resources/templates/auto-split-pdf.html index 914b9d60..fa6b1d16 100644 --- a/src/main/resources/templates/auto-split-pdf.html +++ b/src/main/resources/templates/auto-split-pdf.html @@ -1,43 +1,62 @@ - - - - + - - -
-
- -

-
-
-
-

- -

-
    -
  • -
  • -
  • -
  • -
-
-

-
-
- - -
-

-

- -
+ + + + + + + +
+
+ +

+
+
+
+
+ cut +
+ +
+

+
+
+
+ + +
+

+ +

+
+ +

+
    +
  • +
  • +
  • +
  • +
+

+

+
+ + +
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/change-creds.html b/src/main/resources/templates/change-creds.html index 08a3ade7..feee43c1 100644 --- a/src/main/resources/templates/change-creds.html +++ b/src/main/resources/templates/change-creds.html @@ -12,7 +12,7 @@

-
+

User Settings

diff --git a/src/main/resources/templates/convert/file-to-pdf.html b/src/main/resources/templates/convert/file-to-pdf.html index d8c8b969..f822a593 100644 --- a/src/main/resources/templates/convert/file-to-pdf.html +++ b/src/main/resources/templates/convert/file-to-pdf.html @@ -1,43 +1,57 @@ - - - - + - - -
-
- -

-
-
-
-

-

-
-
- -
-

-

-

Microsoft Word: (DOC, DOCX, DOT, DOTX)

-

Microsoft Excel: (CSV, XLS, XLSX, XLT, XLTX, SLK, DIF)

-

Microsoft PowerPoint: (PPT, PPTX)

-

OpenDocument Formats: (ODT, OTT, ODS, OTS, ODP, OTP, ODG, OTG)

-

Plain Text: (TXT, TEXT, XML)

-

Rich Text Format: (RTF)

-

Images: (BMP, GIF, JPEG, PNG, TIF, PBM, PGM, PPM, RAS, XBM, XPM, SVG, SVM, WMF)

-

HTML: (HTML)

-

Lotus Word Pro: (LWP)

-

StarOffice: (SDA, SDC, SDD, SDW, STC, STD, STI, STW, SXD, SXG, SXI, SXW)

-

Other: (DBF, FODS, VSD, VOR, VOR3, VOR4, UOP, PCT, PS, PDF)

- https://help.libreoffice.org/latest/en-US/text/shared/guide/supported_formats.html + + + + + + +
+
+ +

+
+
+
+
+ draft +
+

+
+
+ +
+

+

+

Microsoft Word: (DOC, DOCX, DOT, DOTX)

+

Microsoft Excel: (CSV, XLS, XLSX, XLT, XLTX, SLK, DIF)

+

Microsoft PowerPoint: (PPT, PPTX)

+

OpenDocument Formats: (ODT, OTT, ODS, OTS, ODP, OTP, ODG, OTG)

+

Plain Text: (TXT, TEXT, XML)

+

Rich Text Format: (RTF)

+

Images: (BMP, GIF, JPEG, PNG, TIF, PBM, PGM, PPM, RAS, XBM, XPM, SVG, SVM, WMF)

+

HTML: (HTML)

+

Lotus Word Pro: (LWP)

+

StarOffice: (SDA, SDC, SDD, SDW, STC, STD, STI, STW, SXD, SXG, SXI, SXW)

+

Other: (DBF, FODS, VSD, VOR, VOR3, VOR4, UOP, PCT, PS, PDF)

+ https://help.libreoffice.org/latest/en-US/text/shared/guide/supported_formats.html +
+
+ + +
+
-
- + +
+ + \ No newline at end of file diff --git a/src/main/resources/templates/convert/html-to-pdf.html b/src/main/resources/templates/convert/html-to-pdf.html index 3c426917..94b4f842 100644 --- a/src/main/resources/templates/convert/html-to-pdf.html +++ b/src/main/resources/templates/convert/html-to-pdf.html @@ -12,8 +12,11 @@

-
-

+
+
+ html + +
diff --git a/src/main/resources/templates/convert/img-to-pdf.html b/src/main/resources/templates/convert/img-to-pdf.html index a8633ad1..ec49e1c4 100644 --- a/src/main/resources/templates/convert/img-to-pdf.html +++ b/src/main/resources/templates/convert/img-to-pdf.html @@ -12,8 +12,11 @@

-
-

+
+
+ image + +
@@ -25,9 +28,9 @@
-
- - +
+ +
diff --git a/src/main/resources/templates/convert/markdown-to-pdf.html b/src/main/resources/templates/convert/markdown-to-pdf.html index 7a51a29c..748c5c66 100644 --- a/src/main/resources/templates/convert/markdown-to-pdf.html +++ b/src/main/resources/templates/convert/markdown-to-pdf.html @@ -12,8 +12,11 @@

-
-

+
+
+ markdown + +
diff --git a/src/main/resources/templates/convert/pdf-to-csv.html b/src/main/resources/templates/convert/pdf-to-csv.html index 9fba9430..be78d1da 100644 --- a/src/main/resources/templates/convert/pdf-to-csv.html +++ b/src/main/resources/templates/convert/pdf-to-csv.html @@ -11,8 +11,11 @@

-
-

+
+
+ csv + +
diff --git a/src/main/resources/templates/convert/pdf-to-html.html b/src/main/resources/templates/convert/pdf-to-html.html index c9256805..395f9829 100644 --- a/src/main/resources/templates/convert/pdf-to-html.html +++ b/src/main/resources/templates/convert/pdf-to-html.html @@ -12,8 +12,11 @@

-
-

+
+
+ html + +

diff --git a/src/main/resources/templates/convert/pdf-to-img.html b/src/main/resources/templates/convert/pdf-to-img.html index 039c52e0..d6b5f871 100644 --- a/src/main/resources/templates/convert/pdf-to-img.html +++ b/src/main/resources/templates/convert/pdf-to-img.html @@ -12,8 +12,11 @@

-
-

+
+
+ image + +

diff --git a/src/main/resources/templates/convert/pdf-to-pdfa.html b/src/main/resources/templates/convert/pdf-to-pdfa.html index 6f558a1e..7b51a86c 100644 --- a/src/main/resources/templates/convert/pdf-to-pdfa.html +++ b/src/main/resources/templates/convert/pdf-to-pdfa.html @@ -12,8 +12,11 @@

-
-

+
+
+ picture_as_pdf + +

diff --git a/src/main/resources/templates/convert/pdf-to-presentation.html b/src/main/resources/templates/convert/pdf-to-presentation.html index 48d27d24..8d4a4284 100644 --- a/src/main/resources/templates/convert/pdf-to-presentation.html +++ b/src/main/resources/templates/convert/pdf-to-presentation.html @@ -12,8 +12,11 @@

-
-

+
+
+ slideshow + +
diff --git a/src/main/resources/templates/convert/pdf-to-text.html b/src/main/resources/templates/convert/pdf-to-text.html index 52d461e0..21bf1fae 100644 --- a/src/main/resources/templates/convert/pdf-to-text.html +++ b/src/main/resources/templates/convert/pdf-to-text.html @@ -12,8 +12,11 @@

-
-

+
+
+ text_fields + +
diff --git a/src/main/resources/templates/convert/pdf-to-word.html b/src/main/resources/templates/convert/pdf-to-word.html index fbbbf45d..cce75d76 100644 --- a/src/main/resources/templates/convert/pdf-to-word.html +++ b/src/main/resources/templates/convert/pdf-to-word.html @@ -12,8 +12,11 @@

-
-

+
+
+ description + +
diff --git a/src/main/resources/templates/convert/pdf-to-xml.html b/src/main/resources/templates/convert/pdf-to-xml.html index cad43da2..388ed80b 100644 --- a/src/main/resources/templates/convert/pdf-to-xml.html +++ b/src/main/resources/templates/convert/pdf-to-xml.html @@ -12,8 +12,11 @@

-
-

+
+
+ code + +

diff --git a/src/main/resources/templates/convert/url-to-pdf.html b/src/main/resources/templates/convert/url-to-pdf.html index 714bd1c4..26c13ad1 100644 --- a/src/main/resources/templates/convert/url-to-pdf.html +++ b/src/main/resources/templates/convert/url-to-pdf.html @@ -12,8 +12,11 @@

-
-

+
+
+ link + +

diff --git a/src/main/resources/templates/crop.html b/src/main/resources/templates/crop.html index f2049572..0af2509c 100644 --- a/src/main/resources/templates/crop.html +++ b/src/main/resources/templates/crop.html @@ -11,8 +11,11 @@

-
-

+
+
+ crop + +
diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html index d896ecbc..61c69c24 100644 --- a/src/main/resources/templates/error.html +++ b/src/main/resources/templates/error.html @@ -8,9 +8,9 @@
-
-
+
+

@@ -18,10 +18,10 @@

- - + +
- +
diff --git a/src/main/resources/templates/extract-page.html b/src/main/resources/templates/extract-page.html index 9d97b3b4..1f8feec2 100644 --- a/src/main/resources/templates/extract-page.html +++ b/src/main/resources/templates/extract-page.html @@ -11,8 +11,11 @@

-
-

+
+
+ upload + +
diff --git a/src/main/resources/templates/fragments/card.html b/src/main/resources/templates/fragments/card.html index 3f5517d6..df236c58 100644 --- a/src/main/resources/templates/fragments/card.html +++ b/src/main/resources/templates/fragments/card.html @@ -1,12 +1,23 @@ -
- -
- Icon -
-
-

-
-
- Favorite -
-
+ +
diff --git a/src/main/resources/templates/fragments/common.html b/src/main/resources/templates/fragments/common.html index 9e879c4c..a1b6828b 100644 --- a/src/main/resources/templates/fragments/common.html +++ b/src/main/resources/templates/fragments/common.html @@ -1,162 +1,174 @@ - - + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - + + + - - - - + + + + - - + + - - + + - - + + - - - - - - - + + + + + + + + + - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - -
-
Lives: 3
-
Score: 0
-
High Score: 0
-
Level: 1
- favicon + }) + +
+
Lives: 3
+
Score: 0
+
High Score: 0
+
Level: 1
+ favicon +
+ +
+
+ + + + + +
+
+ +
+
+
+ + + +
\ No newline at end of file diff --git a/src/main/resources/templates/fragments/errorBanner.html b/src/main/resources/templates/fragments/errorBanner.html index a5070422..66908390 100644 --- a/src/main/resources/templates/fragments/errorBanner.html +++ b/src/main/resources/templates/fragments/errorBanner.html @@ -1,12 +1,18 @@ -
-