+ +
diff --git a/app/Gulpfile.js b/app/Gulpfile.js
index 791e1d2..6dccdfc 100644
--- a/app/Gulpfile.js
+++ b/app/Gulpfile.js
@@ -9,7 +9,10 @@ const sourcemaps = require('gulp-sourcemaps');
const imagemin = require('gulp-imagemin');
const webp = require('gulp-webp');
const newer = require('gulp-newer');
-const fontmin = require('gulp-fontmin');
+const rename = require('gulp-rename');
+const ttf2woff = require('gulp-ttf2woff');
+const ttf2woff2 = require('gulp-ttf2woff2');
+const ttf2eot = require('gulp-ttf2eot');
const svgmin = require('gulp-svgmin');
const paths = {
@@ -52,7 +55,7 @@ function styles() {
function scripts() {
return gulp.src(paths.scripts.src)
.pipe(sourcemaps.init())
- .pipe(concat('script.js'))
+ .pipe(concat('scripts.js'))
.pipe(uglify())
.pipe(gulp.dest(paths.scripts.dest))
.pipe(sourcemaps.write('.'))
@@ -78,8 +81,23 @@ function icons() {
function fonts() {
return gulp.src(paths.fonts.src)
.pipe(newer(paths.fonts.dest))
- .pipe(fontmin())
+
+ .pipe(ttf2woff())
+ .pipe(rename({ extname: '.woff' }))
.pipe(gulp.dest(paths.fonts.dest))
+
+ .pipe(gulp.src(paths.fonts.src))
+ .pipe(ttf2woff2())
+ .pipe(rename({ extname: '.woff2' }))
+ .pipe(gulp.dest(paths.fonts.dest))
+
+ .pipe(gulp.src(paths.fonts.src))
+ .pipe(ttf2eot())
+ .pipe(rename({ extname: '.eot' }))
+ .pipe(gulp.dest(paths.fonts.dest))
+
+ .pipe(gulp.src(paths.fonts.src))
+ .pipe(gulp.dest(paths.fonts.dest));
}
function watch() {
diff --git a/app/assets/icons/archive.svg b/app/assets/icons/archive.svg
deleted file mode 100644
index d6a4354..0000000
--- a/app/assets/icons/archive.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/assets/icons/bypass.svg b/app/assets/icons/bypass.svg
deleted file mode 100644
index 53aae2a..0000000
--- a/app/assets/icons/bypass.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/assets/icons/code.svg b/app/assets/icons/code.svg
deleted file mode 100644
index 65954eb..0000000
--- a/app/assets/icons/code.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/app/assets/icons/search.svg b/app/assets/icons/search.svg
deleted file mode 100644
index 9abe77a..0000000
--- a/app/assets/icons/search.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/app/assets/images/wall.png b/app/assets/images/wall.png
index 3b3fa64..c54dc7f 100644
Binary files a/app/assets/images/wall.png and b/app/assets/images/wall.png differ
diff --git a/app/assets/js/scripts.js b/app/assets/js/scripts.js
index 05a9488..5485ac8 100644
--- a/app/assets/js/scripts.js
+++ b/app/assets/js/scripts.js
@@ -1,130 +1,67 @@
-/**
- * JavaScript functions for form validation and error handling
- * Funções JavaScript para validação de formulário e manipulação de erros
- */
-
-/**
- * Validates the form before submission
- *
- * Checks:
- * - If URL is not empty
- * - If URL starts with http:// or https://
- * - If URL has a valid format
- *
- * @returns {boolean} True if URL is valid, False otherwise
- *
- * Valida o formulário antes do envio
- *
- * Verifica:
- * - Se a URL não está vazia
- * - Se a URL começa com http:// ou https://
- * - Se a URL tem um formato válido
- *
- * @returns {boolean} True se a URL for válida, False caso contrário
- */
-function validateForm() {
- const urlInput = document.getElementById('url');
- const submitButton = document.querySelector('button[type="submit"]');
- const url = urlInput.value.trim();
-
- // Check if URL is not empty
- // Verifica se a URL não está vazia
- if (!url) {
- showError('Por favor, insira uma URL');
- return false;
- }
-
- // Check if URL starts with http:// or https://
- // Verifica se a URL começa com http:// ou https://
- if (!/^https?:\/\//i.test(url)) {
- showError('A URL deve começar com http:// ou https://');
- return false;
- }
-
- // Try to create a URL object to validate format
- // Tenta criar um objeto URL para validar o formato
- try {
- new URL(url);
- } catch (e) {
- showError('Formato de URL inválido');
- return false;
- }
-
- // Disable input and button
- // Desabilita o input e o botão
- urlInput.readonly = true;
- submitButton.disabled = true;
-
- // Add Tailwind disabled classes
- // Adiciona classes de disabled do Tailwind
- submitButton.classList.add('cursor-wait', 'disabled:bg-blue-400');
- submitButton.classList.remove('hover:bg-blue-700');
-
- urlInput.classList.add('cursor-wait', 'disabled:bg-gray-50', 'focus:outline-none');
-
- // Add loading state to button
- // Adiciona estado de loading ao botão
- submitButton.innerHTML = `
-
- Analisando...
- `;
-
- return true;
-}
-
-/**
- * Displays an error message below the form
- *
- * Removes any existing error message before displaying the new one.
- * The message is displayed with an error icon and red formatting.
- *
- * @param {string} message Error message to be displayed
- *
- * Exibe uma mensagem de erro abaixo do formulário
- *
- * Remove qualquer mensagem de erro existente antes de exibir a nova.
- * A mensagem é exibida com um ícone de erro e formatação em vermelho.
- *
- * @param {string} message Mensagem de erro a ser exibida
- */
-function showError(message) {
- const form = document.getElementById('urlForm');
- const existingError = form.querySelector('.error-message');
-
- // Remove previous error message if it exists
- // Remove mensagem de erro anterior se existir
- if (existingError) {
- existingError.remove();
- }
-
- // Create and add new error message
- // Cria e adiciona nova mensagem de erro
- const errorDiv = document.createElement('div');
- errorDiv.className = 'error-message mt-4 text-base text-red-600';
- errorDiv.innerHTML = `
-
- ${message}`;
-
- form.appendChild(errorDiv);
-}
-
/**
* Service Worker registration for PWA functionality
* Registers a service worker to enable offline capabilities and PWA features
- *
- * Registro do Service Worker para funcionalidade PWA
- * Registra um service worker para habilitar recursos offline e funcionalidades PWA
*/
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/service-worker.js')
.then(() => {
// Service Worker registered successfully
- // Service Worker registrado com sucesso
})
.catch(() => {
// Service Worker registration failed
- // Falha no registro do Service Worker
});
});
}
+
+/**
+ * Header toggle menus
+ */
+document.addEventListener('DOMContentLoaded', function () {
+ const integration = document.querySelector('.integration');
+ const integrationToggle = document.querySelector('.integration__toggle');
+ const extension = document.querySelector('.extension');
+ const extensionToggle = document.querySelector('.extension__toggle');
+
+ // Function to close all menus
+ const closeAllMenus = () => {
+ integration.classList.remove('open');
+ extension.classList.remove('open');
+ };
+
+ // Function to close other menus except the one passed
+ const closeOtherMenus = (exceptMenu) => {
+ if (exceptMenu !== integration) {
+ integration.classList.remove('open');
+ }
+ if (exceptMenu !== extension) {
+ extension.classList.remove('open');
+ }
+ };
+
+ integrationToggle.addEventListener('click', (e) => {
+ e.stopPropagation(); // Prevent click from bubbling to document
+ closeOtherMenus(integration);
+ integration.classList.toggle('open');
+ });
+
+ extensionToggle.addEventListener('click', (e) => {
+ e.stopPropagation(); // Prevent click from bubbling to document
+ closeOtherMenus(extension);
+ extension.classList.toggle('open');
+ });
+
+ // Prevent clicks inside menus from closing them
+ integration.addEventListener('click', (e) => {
+ e.stopPropagation();
+ });
+
+ extension.addEventListener('click', (e) => {
+ e.stopPropagation();
+ });
+
+ // Close menus when clicking outside
+ document.addEventListener('click', () => {
+ closeAllMenus();
+ });
+});
\ No newline at end of file
diff --git a/app/assets/scss/_base.scss b/app/assets/scss/_base.scss
index 4aeed5a..13fcf12 100644
--- a/app/assets/scss/_base.scss
+++ b/app/assets/scss/_base.scss
@@ -2,7 +2,7 @@
// Default
body {
- font-family: var(--font-family-haffer);
+ font-family: var(--font-family-inter);
font-size: var(--font-size);
font-weight: var(--font-weight);
line-height: var(--line-height);
diff --git a/app/assets/scss/_fonts.scss b/app/assets/scss/_fonts.scss
index b0398d2..28ba477 100644
--- a/app/assets/scss/_fonts.scss
+++ b/app/assets/scss/_fonts.scss
@@ -1,10 +1,10 @@
@font-face {
font-family: 'inter';
- src: url('../fonts/inter-500.eot');
+ src: url('../dist/fonts/inter-500.eot');
src: local('Inter Medium'), local('Inter-Medium'),
- url('../fonts/inter-500.woff2') format('woff2'),
- url('../fonts/inter-500.woff') format('woff'),
- url('../fonts/inter-500.ttf') format('truetype');
+ url('../dist/fonts/inter-500.woff2') format('woff2'),
+ url('../dist/fonts/inter-500.woff') format('woff'),
+ url('../dist/fonts/inter-500.ttf') format('truetype');
font-weight: 500;
font-style: normal;
font-display: swap;
@@ -12,11 +12,11 @@
@font-face {
font-family: 'inter';
- src: url('../fonts/inter-600.eot');
+ src: url('../dist/fonts/inter-600.eot');
src: local('Inter SemiBold'), local('Inter-SemiBold'),
- url('../fonts/inter-600.woff2') format('woff2'),
- url('../fonts/inter-600.woff') format('woff'),
- url('../fonts/inter-600.ttf') format('truetype');
+ url('../dist/fonts/inter-600.woff2') format('woff2'),
+ url('../dist/fonts/inter-600.woff') format('woff'),
+ url('../dist/fonts/inter-600.ttf') format('truetype');
font-weight: 600;
font-style: normal;
font-display: swap;
@@ -24,11 +24,11 @@
@font-face {
font-family: 'unna';
- src: url('../fonts/unna-400.eot');
+ src: url('../dist/fonts/unna-400.eot');
src: local('Unna Regular'), local('Unna-Regular'),
- url('../fonts/unna-400.woff2') format('woff2'),
- url('../fonts/unna-400.woff') format('woff'),
- url('../fonts/unna-400.ttf') format('truetype');
+ url('../dist/fonts/unna-400.woff2') format('woff2'),
+ url('../dist/fonts/unna-400.woff') format('woff'),
+ url('../dist/fonts/unna-400.ttf') format('truetype');
font-weight: 400;
font-style: normal;
font-display: swap;
diff --git a/app/assets/scss/_icons.scss b/app/assets/scss/_icons.scss
index 8b8cb27..7396b0a 100644
--- a/app/assets/scss/_icons.scss
+++ b/app/assets/scss/_icons.scss
@@ -8,29 +8,31 @@
// https://codepen.io/sosuke/pen/Pjoqqp
.icon {
- display: inline-block;
- vertical-align: -0.125em;
- fill: currentcolor;
- width: 1em;
- height: 1em;
- background-repeat: no-repeat;
- background-position: center center;
- background-size: 100% auto;
+ display: inline-block;
+ vertical-align: -0.125em;
+ fill: currentcolor;
+ width: 16px;
+ height: 16px;
+ background-repeat: no-repeat;
+ background-position: center center;
+ background-size: 100% auto;
+ &--bookmark {
+ background-size: auto 100% !important;
+ }
}
-@include mixin.icon('marreta');
-@include mixin.icon('android');
-@include mixin.icon('apple');
-@include mixin.icon('archive');
-@include mixin.icon('bookmark');
-@include mixin.icon('bsky');
-@include mixin.icon('bypass');
-@include mixin.icon('chrome');
-@include mixin.icon('code');
-@include mixin.icon('error');
-@include mixin.icon('firefox');
-@include mixin.icon('link');
-@include mixin.icon('refresh');
-@include mixin.icon('search');
-@include mixin.icon('telegram');
-@include mixin.icon('warning');
\ No newline at end of file
+@include mixin.icon('marreta', 'invert(43%) sepia(74%) saturate(2288%) hue-rotate(201deg) brightness(98%) contrast(97%)');
+@include mixin.icon('bookmark', 'invert(80%) sepia(46%) saturate(1512%) hue-rotate(340deg) brightness(106%) contrast(97%)');
+
+@include mixin.icon('android', 'invert(72%) sepia(34%) saturate(778%) hue-rotate(32deg) brightness(97%) contrast(88%)');
+@include mixin.icon('apple', 'invert(0%) sepia(21%) saturate(7425%) hue-rotate(12deg) brightness(96%) contrast(96%)');
+@include mixin.icon('bsky', 'invert(47%) sepia(66%) saturate(4445%) hue-rotate(195deg) brightness(98%) contrast(104%)');
+@include mixin.icon('telegram', 'invert(61%) sepia(86%) saturate(1341%) hue-rotate(166deg) brightness(96%) contrast(85%)');
+@include mixin.icon('chrome', 'invert(40%) sepia(90%) saturate(1163%) hue-rotate(203deg) brightness(104%) contrast(92%)');
+@include mixin.icon('firefox', 'invert(57%) sepia(43%) saturate(1854%) hue-rotate(360deg) brightness(102%) contrast(106%)');
+
+@include mixin.icon('link', 'invert(53%) sepia(12%) saturate(17%) hue-rotate(39deg) brightness(94%) contrast(91%)');
+@include mixin.icon('refresh', 'invert(100%) sepia(32%) saturate(8%) hue-rotate(23deg) brightness(102%) contrast(100%)');
+
+@include mixin.icon('error', 'invert(30%) sepia(58%) saturate(3703%) hue-rotate(336deg) brightness(90%) contrast(91%)');
+@include mixin.icon('warning', 'invert(89%) sepia(25%) saturate(5861%) hue-rotate(353deg) brightness(101%) contrast(101%)');
\ No newline at end of file
diff --git a/app/assets/scss/_mixin.scss b/app/assets/scss/_mixin.scss
index bf95eca..5fbc8a9 100644
--- a/app/assets/scss/_mixin.scss
+++ b/app/assets/scss/_mixin.scss
@@ -1,8 +1,10 @@
+@use "sass:math";
+@use "sass:color";
-@mixin create-color($name, $color) {
- --#{$name}: #{$color};
- --#{$name}-lighten: color.scale($color, $lightness: -100%);
- --#{$name}-darken: color.adjust($color, $lightness: -10%)
+@mixin create-color($name, $hex) {
+ --#{$name}: #{$hex};
+ --#{$name}-lighten: #{color.adjust($hex, $lightness: 5%)};
+ --#{$name}-darken: #{color.adjust($hex, $lightness: -10%)};
}
@mixin devices($breakpoint) {
@@ -13,12 +15,9 @@
}
}
-@mixin background-image-svg($name) {
- background-image: url("../images/icons/#{$name}.svg");
-}
-
-@mixin icon($name) {
+@mixin icon($name, $filter) {
.icon--#{$name} {
- @include background-image-svg($name);
+ background-image: url("../dist/icons/#{$name}.svg");
+ filter: #{$filter};
}
}
\ No newline at end of file
diff --git a/app/assets/scss/_root.scss b/app/assets/scss/_root.scss
index e8e08d3..edf3d07 100644
--- a/app/assets/scss/_root.scss
+++ b/app/assets/scss/_root.scss
@@ -21,7 +21,8 @@
"Liberation Mono",
"Courier New",
monospace;
- --font-family-haffer: "haffer";
+ --font-family-inter: "inter";
+ --font-family-unna: "unna";
//-- Styles
--font-size: 16px;
@@ -29,18 +30,10 @@
--line-height: 160%;
// Colors
- $hex-marreta: #fff;
- $hex-text: #000;
- $hex-textmuted: #000;
- $hex-link: #000;
-
- @include mixin.create-color('marreta', $hex-marreta);
- @include mixin.create-color('text', $hex-text);
- @include mixin.create-color('textmuted', $hex-textmuted);
- @include mixin.create-color('link', $hex-link);
-
- // Borders
- --border-radius-default: 1rem;
+ @include mixin.create-color('marreta', #3B82F6);
+ @include mixin.create-color('text', #484848);
+ @include mixin.create-color('textmuted', #818181);
+ @include mixin.create-color('link', #3B82F6);
// Spacing
--container_spacing: 24px;
diff --git a/app/assets/scss/home.scss b/app/assets/scss/home.scss
index e69de29..34ecca3 100644
--- a/app/assets/scss/home.scss
+++ b/app/assets/scss/home.scss
@@ -0,0 +1,374 @@
+header {
+ display: grid;
+ grid-template-columns: 1fr 2fr 1fr;
+ align-items: center;
+ padding: 42px 0;
+
+ .brand {
+ display: flex;
+ align-items: center;
+ .icon {
+ margin-right: 6px;
+ &--marreta {
+ width: 32px;
+ height: 32px;
+ }
+ }
+ h1 {
+ font-family: var(--font-family-unna);
+ color: #000;
+ }
+ }
+
+ nav {
+ display: flex;
+ justify-content: center;
+ gap: 48px;
+
+ a {
+ text-decoration: none;
+ color: #333;
+
+ &:hover {
+ color: #007bff;
+ }
+ }
+
+ .integration {
+ position: relative;
+
+ &__toggle {
+ background: none;
+ border: none;
+ cursor: pointer;
+ color: #333;
+
+ &:hover {
+ color: #007bff;
+ }
+ }
+
+ &__menu {
+ display: none;
+ position: absolute;
+ top: 110%;
+ left: 0;
+ border-radius: 16px;
+ background-color: #F4F4F5;
+ border: 4px solid #F4F4F5;
+ z-index: 10;
+ box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.05);
+ box-shadow: 0px 10px 15px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.04);
+ box-shadow: 0px 20px 25px 0px rgba(0, 0, 0, 0.1);
+
+ a {
+ margin-bottom: 4px;
+ &:first-child {
+ border-top-left-radius: 16px;
+ border-top-right-radius: 16px;
+ }
+ &:last-child {
+ margin-bottom: 0;
+ border-bottom-left-radius: 16px;
+ border-bottom-right-radius: 16px;
+ }
+ color: var(--text);
+ font-weight: 600;
+ display: block;
+ padding: 8px 16px;
+ background-color: #fff;
+ display: flex;
+ align-items: center;
+ &:hover {
+ color: var(--marreta);
+ }
+ span {
+ display: inline-block;
+ }
+ }
+ .name {
+ width: 140px;
+ }
+ }
+
+ &.open {
+ .integration__menu {
+ display: block;
+ }
+
+ .arrow {
+ top: 1px;
+ transform: rotate(-45deg);
+ }
+ }
+
+ .arrow {
+ position: relative;
+ top: -3px;
+ content: "";
+ display: inline-block;
+ width: 6px;
+ height: 6px;
+ border-right: 2px solid black;
+ border-top: 2px solid black;
+ transform: rotate(135deg);
+ margin-right: 0;
+ margin-left: 5px;
+ }
+ }
+ }
+
+ .extension {
+ display: flex;
+ justify-content: flex-end;
+ position: relative;
+
+ &__toggle {
+ background-color: var(--marreta);
+ border-radius: 40px;
+ border: 0;
+ cursor: pointer;
+ color: #FFF;
+ font-weight: 600;
+ padding: 12px 24px;
+ line-height: 1.3em;
+ &:hover {
+ background-color: var(--marreta-darken);
+ }
+ }
+
+ &__menu {
+ display: none;
+ position: absolute;
+ top: 110%;
+ right: 0;
+ border-radius: 16px;
+ background-color: #F4F4F5;
+ border: 4px solid #F4F4F5;
+ z-index: 10;
+ box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.05);
+ box-shadow: 0px 10px 15px 0px rgba(0, 0, 0, 0.1);
+ box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.04);
+ box-shadow: 0px 20px 25px 0px rgba(0, 0, 0, 0.1);
+
+ a {
+ margin-bottom: 4px;
+ &:first-child {
+ border-top-left-radius: 16px;
+ border-top-right-radius: 16px;
+ }
+ &:last-child {
+ margin-bottom: 0;
+ border-bottom-left-radius: 16px;
+ border-bottom-right-radius: 16px;
+ }
+ color: var(--text);
+ font-weight: 600;
+ display: block;
+ padding: 8px 16px;
+ background-color: #fff;
+ display: flex;
+ align-items: center;
+ &:hover {
+ color: var(--marreta);
+ }
+ span {
+ display: inline-block;
+ }
+ }
+ .name {
+ width: 140px;
+ }
+ }
+
+ &.open {
+ .extension__toggle {
+ background-color: #F4F4F5;
+ color: var(--textmuted);
+ }
+ .extension__menu {
+ display: block;
+ }
+ }
+ }
+}
+
+main {
+ .description {
+ position: relative;
+ z-index: 3;
+ font-family: var(--font-family-unna);
+ font-size: 64px;
+ line-height: 61.44px;
+ text-align: center;
+ color: #000;
+ max-width: 512px;
+ margin: 0 auto;
+ }
+
+ .walls_destroyed {
+ position: relative;
+ z-index: 3;
+ max-width: 512px;
+ margin: 22px auto;
+ text-align: center;
+
+ span {
+ color: var(--textmuted);
+ }
+ }
+
+ form {
+ z-index: 2;
+ position: relative;
+
+ .fields {
+ &::before {
+ content: '';
+ background-image: url(../assets/images/wall.png);
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ width: 422px;
+ height: 306px;
+ position: absolute;
+ top: -110px;
+ right: -180px;
+ z-index: 1;
+ }
+
+ max-width: 470px;
+ margin: 0 auto;
+ position: relative;
+
+ .input {
+ position: relative;
+ z-index: 2;
+ padding-right: 28px;
+ padding-top: 2px;
+
+ .icon {
+ z-index: 2;
+
+ &--link {
+ position: absolute;
+ top: 50%;
+ left: 1rem;
+ margin-top: -6px;
+ }
+ }
+
+ input {
+ background-color: #F4F4F5;
+ padding: 16px 0 16px 44px;
+ border: 0;
+ border-radius: 8px;
+ width: 100%;
+ box-sizing: border-box;
+ position: relative;
+ line-height: 1.3em;
+ }
+ }
+
+ button {
+ position: relative;
+ background-color: var(--marreta);
+ border-radius: 50%;
+ height: 56px;
+ width: 56px;
+ border: 0;
+ z-index: 3;
+ position: absolute;
+ top: 0;
+ right: 0;
+ cursor: pointer;
+
+ &:hover {
+ background-color: var(--marreta-darken);
+ }
+
+ .icon {
+ width: 23px;
+ height: 23px;
+
+ &--refresh,
+ &--marreta {
+ filter: invert(100%) sepia(32%) saturate(8%) hue-rotate(23deg) brightness(102%) contrast(100%);
+ }
+ }
+ }
+ }
+ }
+
+ .adblock {
+ color: var(--textmuted);
+ font-size: 13px;
+ line-height: 1.2em;
+ text-align: center;
+ max-width: 470px;
+ position: relative;
+ z-index: 3;
+ margin: 22px auto 0 auto;
+ }
+
+ .plus {
+ z-index: 3;
+ position: relative;
+ display: grid;
+ grid-auto-columns: 1fr;
+ grid-template-columns: 1fr 1fr;
+ gap: 0px 28px;
+ align-items: start;
+ max-width: 960px;
+ margin: 62px auto 24px auto;
+
+ h2 {
+ font-size: 16px;
+ padding-bottom: 8px;
+ margin: 0;
+
+ .icon {
+ margin-right: 10px;
+ }
+ }
+
+ .text {
+ font-size: 14px;
+ color: var(--textmuted);
+ padding-left: 26px;
+
+ ol {
+ padding-left: 16px;
+ margin: 0;
+ }
+
+ p {
+ margin: 0;
+ }
+
+ strong {
+ font-weight: 600;
+ color: var(--text);
+ }
+ }
+
+ .bookmarklet {
+ a {
+ border: 2px solid var(--marreta);
+ color: var(--marreta);
+ border-radius: 40px;
+ padding: 8px 16px;
+ margin-top: 16px;
+ display: inline-block;
+ font-weight: 600;
+
+ &:hover {
+ border-color: var(--marreta-darken);
+ color: var(--marreta-darken);
+ }
+ }
+ }
+ }
+}
+
+footer {}
\ No newline at end of file
diff --git a/app/assets/scss/index.scss b/app/assets/scss/index.scss
index a396426..25390ad 100644
--- a/app/assets/scss/index.scss
+++ b/app/assets/scss/index.scss
@@ -1,6 +1,3 @@
-@use "sass:math";
-@use "sass:color";
-
@forward "normalize.css/normalize";
@use "mixin";
diff --git a/app/dist/css/style.css b/app/dist/css/style.css
index 10264b2..8f84c8b 100644
--- a/app/dist/css/style.css
+++ b/app/dist/css/style.css
@@ -1,2 +1,2 @@
-/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:inter;src:url(../fonts/inter-500.eot);src:local("Inter Medium"),local("Inter-Medium"),url(../fonts/inter-500.woff2) format("woff2"),url(../fonts/inter-500.woff) format("woff"),url(../fonts/inter-500.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:inter;src:url(../fonts/inter-600.eot);src:local("Inter SemiBold"),local("Inter-SemiBold"),url(../fonts/inter-600.woff2) format("woff2"),url(../fonts/inter-600.woff) format("woff"),url(../fonts/inter-600.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:unna;src:url(../fonts/unna-400.eot);src:local("Unna Regular"),local("Unna-Regular"),url(../fonts/unna-400.woff2) format("woff2"),url(../fonts/unna-400.woff) format("woff"),url(../fonts/unna-400.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--font-family-haffer:"haffer";--font-size:16px;--font-weight:500;--line-height:160%;--marreta:#fff;--marreta-lighten:color.scale($color, $lightness: -100%);--marreta-darken:color.adjust($color, $lightness: -10%);--text:#000;--text-lighten:color.scale($color, $lightness: -100%);--text-darken:color.adjust($color, $lightness: -10%);--textmuted:#000;--textmuted-lighten:color.scale($color, $lightness: -100%);--textmuted-darken:color.adjust($color, $lightness: -10%);--link:#000;--link-lighten:color.scale($color, $lightness: -100%);--link-darken:color.adjust($color, $lightness: -10%);--border-radius-default:1rem;--container_spacing:24px}@media only screen and (min-width:1200px){:root{--container_spacing:64px}}html{scroll-behavior:smooth}@media screen and (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-family-haffer);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height);color:var(--text);text-align:left;background-color:var(--background);min-width:320px}a{text-decoration:none;color:var(--link)}a:hover{text-decoration:none;color:var(--link-lighten)}.container{padding-right:var(--container_spacing);padding-left:var(--container_spacing);margin-right:auto;margin-left:auto}@media only screen and (min-width:1200px){.container{max-width:1248px}}.icon{display:inline-block;vertical-align:-.125em;fill:currentcolor;width:1em;height:1em;background-repeat:no-repeat;background-position:center center;background-size:100% auto}.icon--marreta{background-image:url(../images/icons/marreta.svg)}.icon--android{background-image:url(../images/icons/android.svg)}.icon--apple{background-image:url(../images/icons/apple.svg)}.icon--archive{background-image:url(../images/icons/archive.svg)}.icon--bookmark{background-image:url(../images/icons/bookmark.svg)}.icon--bsky{background-image:url(../images/icons/bsky.svg)}.icon--bypass{background-image:url(../images/icons/bypass.svg)}.icon--chrome{background-image:url(../images/icons/chrome.svg)}.icon--code{background-image:url(../images/icons/code.svg)}.icon--error{background-image:url(../images/icons/error.svg)}.icon--firefox{background-image:url(../images/icons/firefox.svg)}.icon--link{background-image:url(../images/icons/link.svg)}.icon--refresh{background-image:url(../images/icons/refresh.svg)}.icon--search{background-image:url(../images/icons/search.svg)}.icon--telegram{background-image:url(../images/icons/telegram.svg)}.icon--warning{background-image:url(../images/icons/warning.svg)}
+header{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;padding:42px 0}header .brand{display:flex;align-items:center}header .brand .icon{margin-right:6px}header .brand .icon--marreta{width:32px;height:32px}header .brand h1{font-family:var(--font-family-unna);color:#000}header nav{display:flex;justify-content:center;gap:48px}header nav a{text-decoration:none;color:#333}header nav a:hover{color:#007bff}header nav .integration{position:relative}header nav .integration__toggle{background:0 0;border:none;cursor:pointer;color:#333}header nav .integration__toggle:hover{color:#007bff}header nav .integration__menu{display:none;position:absolute;top:110%;left:0;border-radius:16px;background-color:#f4f4f5;border:4px solid #f4f4f5;z-index:10;box-shadow:0 4px 6px 0 rgba(0,0,0,.05);box-shadow:0 10px 15px 0 rgba(0,0,0,.1);box-shadow:0 10px 10px 0 rgba(0,0,0,.04);box-shadow:0 20px 25px 0 rgba(0,0,0,.1)}header nav .integration__menu a{margin-bottom:4px;color:var(--text);font-weight:600;display:block;padding:8px 16px;background-color:#fff;display:flex;align-items:center}header nav .integration__menu a:first-child{border-top-left-radius:16px;border-top-right-radius:16px}header nav .integration__menu a:last-child{margin-bottom:0;border-bottom-left-radius:16px;border-bottom-right-radius:16px}header nav .integration__menu a:hover{color:var(--marreta)}header nav .integration__menu a span{display:inline-block}header nav .integration__menu .name{width:140px}header nav .integration.open .integration__menu{display:block}header nav .integration.open .arrow{top:1px;transform:rotate(-45deg)}header nav .integration .arrow{position:relative;top:-3px;content:"";display:inline-block;width:6px;height:6px;border-right:2px solid #000;border-top:2px solid #000;transform:rotate(135deg);margin-right:0;margin-left:5px}header .extension{display:flex;justify-content:flex-end;position:relative}header .extension__toggle{background-color:var(--marreta);border-radius:40px;border:0;cursor:pointer;color:#fff;font-weight:600;padding:12px 24px;line-height:1.3em}header .extension__toggle:hover{background-color:var(--marreta-darken)}header .extension__menu{display:none;position:absolute;top:110%;right:0;border-radius:16px;background-color:#f4f4f5;border:4px solid #f4f4f5;z-index:10;box-shadow:0 4px 6px 0 rgba(0,0,0,.05);box-shadow:0 10px 15px 0 rgba(0,0,0,.1);box-shadow:0 10px 10px 0 rgba(0,0,0,.04);box-shadow:0 20px 25px 0 rgba(0,0,0,.1)}header .extension__menu a{margin-bottom:4px;color:var(--text);font-weight:600;display:block;padding:8px 16px;background-color:#fff;display:flex;align-items:center}header .extension__menu a:first-child{border-top-left-radius:16px;border-top-right-radius:16px}header .extension__menu a:last-child{margin-bottom:0;border-bottom-left-radius:16px;border-bottom-right-radius:16px}header .extension__menu a:hover{color:var(--marreta)}header .extension__menu a span{display:inline-block}header .extension__menu .name{width:140px}header .extension.open .extension__toggle{background-color:#f4f4f5;color:var(--textmuted)}header .extension.open .extension__menu{display:block}main .description{position:relative;z-index:3;font-family:var(--font-family-unna);font-size:64px;line-height:61.44px;text-align:center;color:#000;max-width:512px;margin:0 auto}main .walls_destroyed{position:relative;z-index:3;max-width:512px;margin:22px auto;text-align:center}main .walls_destroyed span{color:var(--textmuted)}main form{z-index:2;position:relative}main form .fields{max-width:470px;margin:0 auto;position:relative}main form .fields::before{content:"";background-image:url(../assets/images/wall.png);background-repeat:no-repeat;background-size:100% 100%;width:422px;height:306px;position:absolute;top:-110px;right:-180px;z-index:1}main form .fields .input{position:relative;z-index:2;padding-right:28px;padding-top:2px}main form .fields .input .icon{z-index:2}main form .fields .input .icon--link{position:absolute;top:50%;left:1rem;margin-top:-6px}main form .fields .input input{background-color:#f4f4f5;padding:16px 0 16px 44px;border:0;border-radius:8px;width:100%;box-sizing:border-box;position:relative;line-height:1.3em}main form .fields button{position:relative;background-color:var(--marreta);border-radius:50%;height:56px;width:56px;border:0;z-index:3;position:absolute;top:0;right:0;cursor:pointer}main form .fields button:hover{background-color:var(--marreta-darken)}main form .fields button .icon{width:23px;height:23px}main form .fields button .icon--marreta,main form .fields button .icon--refresh{filter:invert(100%) sepia(32%) saturate(8%) hue-rotate(23deg) brightness(102%) contrast(100%)}main .adblock{color:var(--textmuted);font-size:13px;line-height:1.2em;text-align:center;max-width:470px;position:relative;z-index:3;margin:22px auto 0 auto}main .plus{z-index:3;position:relative;display:grid;grid-auto-columns:1fr;grid-template-columns:1fr 1fr;gap:0 28px;align-items:start;max-width:960px;margin:62px auto 24px auto}main .plus h2{font-size:16px;padding-bottom:8px;margin:0}main .plus h2 .icon{margin-right:10px}main .plus .text{font-size:14px;color:var(--textmuted);padding-left:26px}main .plus .text ol{padding-left:16px;margin:0}main .plus .text p{margin:0}main .plus .text strong{font-weight:600;color:var(--text)}main .plus .bookmarklet a{border:2px solid var(--marreta);color:var(--marreta);border-radius:40px;padding:8px 16px;margin-top:16px;display:inline-block;font-weight:600}main .plus .bookmarklet a:hover{border-color:var(--marreta-darken);color:var(--marreta-darken)}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:inter;src:url(../dist/fonts/inter-500.eot);src:local("Inter Medium"),local("Inter-Medium"),url(../dist/fonts/inter-500.woff2) format("woff2"),url(../dist/fonts/inter-500.woff) format("woff"),url(../dist/fonts/inter-500.ttf) format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:inter;src:url(../dist/fonts/inter-600.eot);src:local("Inter SemiBold"),local("Inter-SemiBold"),url(../dist/fonts/inter-600.woff2) format("woff2"),url(../dist/fonts/inter-600.woff) format("woff"),url(../dist/fonts/inter-600.ttf) format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:unna;src:url(../dist/fonts/unna-400.eot);src:local("Unna Regular"),local("Unna-Regular"),url(../dist/fonts/unna-400.woff2) format("woff2"),url(../dist/fonts/unna-400.woff) format("woff"),url(../dist/fonts/unna-400.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--font-family-inter:"inter";--font-family-unna:"unna";--font-size:16px;--font-weight:500;--line-height:160%;--marreta:#3B82F6;--marreta-lighten:rgb(83.3804878049, 145.5487804878, 247.1195121951);--marreta-darken:rgb(11.1512195122, 99.1219512195, 242.8487804878);--text:#484848;--text-lighten:rgb(84.75, 84.75, 84.75);--text-darken:rgb(46.5, 46.5, 46.5);--textmuted:#818181;--textmuted-lighten:rgb(141.75, 141.75, 141.75);--textmuted-darken:rgb(103.5, 103.5, 103.5);--link:#3B82F6;--link-lighten:rgb(83.3804878049, 145.5487804878, 247.1195121951);--link-darken:rgb(11.1512195122, 99.1219512195, 242.8487804878);--container_spacing:24px}@media only screen and (min-width:1200px){:root{--container_spacing:64px}}html{scroll-behavior:smooth}@media screen and (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-family-inter);font-size:var(--font-size);font-weight:var(--font-weight);line-height:var(--line-height);color:var(--text);text-align:left;background-color:var(--background);min-width:320px}a{text-decoration:none;color:var(--link)}a:hover{text-decoration:none;color:var(--link-lighten)}.container{padding-right:var(--container_spacing);padding-left:var(--container_spacing);margin-right:auto;margin-left:auto}@media only screen and (min-width:1200px){.container{max-width:1248px}}.icon{display:inline-block;vertical-align:-.125em;fill:currentcolor;width:16px;height:16px;background-repeat:no-repeat;background-position:center center;background-size:100% auto}.icon--bookmark{background-size:auto 100%!important}.icon--marreta{background-image:url(../dist/icons/marreta.svg);filter:invert(43%) sepia(74%) saturate(2288%) hue-rotate(201deg) brightness(98%) contrast(97%)}.icon--bookmark{background-image:url(../dist/icons/bookmark.svg);filter:invert(80%) sepia(46%) saturate(1512%) hue-rotate(340deg) brightness(106%) contrast(97%)}.icon--android{background-image:url(../dist/icons/android.svg);filter:invert(72%) sepia(34%) saturate(778%) hue-rotate(32deg) brightness(97%) contrast(88%)}.icon--apple{background-image:url(../dist/icons/apple.svg);filter:invert(0) sepia(21%) saturate(7425%) hue-rotate(12deg) brightness(96%) contrast(96%)}.icon--bsky{background-image:url(../dist/icons/bsky.svg);filter:invert(47%) sepia(66%) saturate(4445%) hue-rotate(195deg) brightness(98%) contrast(104%)}.icon--telegram{background-image:url(../dist/icons/telegram.svg);filter:invert(61%) sepia(86%) saturate(1341%) hue-rotate(166deg) brightness(96%) contrast(85%)}.icon--chrome{background-image:url(../dist/icons/chrome.svg);filter:invert(40%) sepia(90%) saturate(1163%) hue-rotate(203deg) brightness(104%) contrast(92%)}.icon--firefox{background-image:url(../dist/icons/firefox.svg);filter:invert(57%) sepia(43%) saturate(1854%) hue-rotate(360deg) brightness(102%) contrast(106%)}.icon--link{background-image:url(../dist/icons/link.svg);filter:invert(53%) sepia(12%) saturate(17%) hue-rotate(39deg) brightness(94%) contrast(91%)}.icon--refresh{background-image:url(../dist/icons/refresh.svg);filter:invert(100%) sepia(32%) saturate(8%) hue-rotate(23deg) brightness(102%) contrast(100%)}.icon--error{background-image:url(../dist/icons/error.svg);filter:invert(30%) sepia(58%) saturate(3703%) hue-rotate(336deg) brightness(90%) contrast(91%)}.icon--warning{background-image:url(../dist/icons/warning.svg);filter:invert(89%) sepia(25%) saturate(5861%) hue-rotate(353deg) brightness(101%) contrast(101%)}header{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;padding:42px 0}header .brand{display:flex;align-items:center}header .brand .icon{margin-right:6px}header .brand .icon--marreta{width:32px;height:32px}header .brand h1{font-family:var(--font-family-unna);color:#000}header nav{display:flex;justify-content:center;gap:48px}header nav a{text-decoration:none;color:#333}header nav a:hover{color:#007bff}header nav .integration{position:relative}header nav .integration__toggle{background:0 0;border:none;cursor:pointer;color:#333}header nav .integration__toggle:hover{color:#007bff}header nav .integration__menu{display:none;position:absolute;top:110%;left:0;border-radius:16px;background-color:#f4f4f5;border:4px solid #f4f4f5;z-index:10;box-shadow:0 4px 6px 0 rgba(0,0,0,.05);box-shadow:0 10px 15px 0 rgba(0,0,0,.1);box-shadow:0 10px 10px 0 rgba(0,0,0,.04);box-shadow:0 20px 25px 0 rgba(0,0,0,.1)}header nav .integration__menu a{margin-bottom:4px;color:var(--text);font-weight:600;display:block;padding:8px 16px;background-color:#fff;display:flex;align-items:center}header nav .integration__menu a:first-child{border-top-left-radius:16px;border-top-right-radius:16px}header nav .integration__menu a:last-child{margin-bottom:0;border-bottom-left-radius:16px;border-bottom-right-radius:16px}header nav .integration__menu a:hover{color:var(--marreta)}header nav .integration__menu a span{display:inline-block}header nav .integration__menu .name{width:140px}header nav .integration.open .integration__menu{display:block}header nav .integration.open .arrow{top:1px;transform:rotate(-45deg)}header nav .integration .arrow{position:relative;top:-3px;content:"";display:inline-block;width:6px;height:6px;border-right:2px solid #000;border-top:2px solid #000;transform:rotate(135deg);margin-right:0;margin-left:5px}header .extension{display:flex;justify-content:flex-end;position:relative}header .extension__toggle{background-color:var(--marreta);border-radius:40px;border:0;cursor:pointer;color:#fff;font-weight:600;padding:12px 24px;line-height:1.3em}header .extension__toggle:hover{background-color:var(--marreta-darken)}header .extension__menu{display:none;position:absolute;top:110%;right:0;border-radius:16px;background-color:#f4f4f5;border:4px solid #f4f4f5;z-index:10;box-shadow:0 4px 6px 0 rgba(0,0,0,.05);box-shadow:0 10px 15px 0 rgba(0,0,0,.1);box-shadow:0 10px 10px 0 rgba(0,0,0,.04);box-shadow:0 20px 25px 0 rgba(0,0,0,.1)}header .extension__menu a{margin-bottom:4px;color:var(--text);font-weight:600;display:block;padding:8px 16px;background-color:#fff;display:flex;align-items:center}header .extension__menu a:first-child{border-top-left-radius:16px;border-top-right-radius:16px}header .extension__menu a:last-child{margin-bottom:0;border-bottom-left-radius:16px;border-bottom-right-radius:16px}header .extension__menu a:hover{color:var(--marreta)}header .extension__menu a span{display:inline-block}header .extension__menu .name{width:140px}header .extension.open .extension__toggle{background-color:#f4f4f5;color:var(--textmuted)}header .extension.open .extension__menu{display:block}main .description{position:relative;z-index:3;font-family:var(--font-family-unna);font-size:64px;line-height:61.44px;text-align:center;color:#000;max-width:512px;margin:0 auto}main .walls_destroyed{position:relative;z-index:3;max-width:512px;margin:22px auto;text-align:center}main .walls_destroyed span{color:var(--textmuted)}main form{z-index:2;position:relative}main form .fields{max-width:470px;margin:0 auto;position:relative}main form .fields::before{content:"";background-image:url(../assets/images/wall.png);background-repeat:no-repeat;background-size:100% 100%;width:422px;height:306px;position:absolute;top:-110px;right:-180px;z-index:1}main form .fields .input{position:relative;z-index:2;padding-right:28px;padding-top:2px}main form .fields .input .icon{z-index:2}main form .fields .input .icon--link{position:absolute;top:50%;left:1rem;margin-top:-6px}main form .fields .input input{background-color:#f4f4f5;padding:16px 0 16px 44px;border:0;border-radius:8px;width:100%;box-sizing:border-box;position:relative;line-height:1.3em}main form .fields button{position:relative;background-color:var(--marreta);border-radius:50%;height:56px;width:56px;border:0;z-index:3;position:absolute;top:0;right:0;cursor:pointer}main form .fields button:hover{background-color:var(--marreta-darken)}main form .fields button .icon{width:23px;height:23px}main form .fields button .icon--marreta,main form .fields button .icon--refresh{filter:invert(100%) sepia(32%) saturate(8%) hue-rotate(23deg) brightness(102%) contrast(100%)}main .adblock{color:var(--textmuted);font-size:13px;line-height:1.2em;text-align:center;max-width:470px;position:relative;z-index:3;margin:22px auto 0 auto}main .plus{z-index:3;position:relative;display:grid;grid-auto-columns:1fr;grid-template-columns:1fr 1fr;gap:0 28px;align-items:start;max-width:960px;margin:62px auto 24px auto}main .plus h2{font-size:16px;padding-bottom:8px;margin:0}main .plus h2 .icon{margin-right:10px}main .plus .text{font-size:14px;color:var(--textmuted);padding-left:26px}main .plus .text ol{padding-left:16px;margin:0}main .plus .text p{margin:0}main .plus .text strong{font-weight:600;color:var(--text)}main .plus .bookmarklet a{border:2px solid var(--marreta);color:var(--marreta);border-radius:40px;padding:8px 16px;margin-top:16px;display:inline-block;font-weight:600}main .plus .bookmarklet a:hover{border-color:var(--marreta-darken);color:var(--marreta-darken)}
/*# sourceMappingURL=style.css.map */
diff --git a/app/dist/css/style.css.map b/app/dist/css/style.css.map
index dd5d742..e8e94a2 100644
--- a/app/dist/css/style.css.map
+++ b/app/dist/css/style.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../node_modules/normalize.css/normalize.css","_fonts.scss","_root.scss","_mixin.scss","_base.scss","_icons.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","@font-face {\r\n font-family: 'inter';\r\n src: url('../fonts/inter-500.eot');\r\n src: local('Inter Medium'), local('Inter-Medium'),\r\n url('../fonts/inter-500.woff2') format('woff2'),\r\n url('../fonts/inter-500.woff') format('woff'),\r\n url('../fonts/inter-500.ttf') format('truetype');\r\n font-weight: 500;\r\n font-style: normal;\r\n font-display: swap;\r\n}\r\n\r\n@font-face {\r\n font-family: 'inter';\r\n src: url('../fonts/inter-600.eot');\r\n src: local('Inter SemiBold'), local('Inter-SemiBold'),\r\n url('../fonts/inter-600.woff2') format('woff2'),\r\n url('../fonts/inter-600.woff') format('woff'),\r\n url('../fonts/inter-600.ttf') format('truetype');\r\n font-weight: 600;\r\n font-style: normal;\r\n font-display: swap;\r\n}\r\n\r\n@font-face {\r\n font-family: 'unna';\r\n src: url('../fonts/unna-400.eot');\r\n src: local('Unna Regular'), local('Unna-Regular'),\r\n url('../fonts/unna-400.woff2') format('woff2'),\r\n url('../fonts/unna-400.woff') format('woff'),\r\n url('../fonts/unna-400.ttf') format('truetype');\r\n font-weight: 400;\r\n font-style: normal;\r\n font-display: swap;\r\n}","@use \"mixin\";\n\n:root {\r\n\t// Fonts\r\n\t--font-family-sans-serif: -apple-system,\r\n\t\tBlinkMacSystemFont,\r\n\t\t\"Segoe UI\",\r\n\t\tRoboto,\r\n\t\t\"Helvetica Neue\",\r\n\t\tArial,\r\n\t\t\"Noto Sans\",\r\n\t\t\"Liberation Sans\",\r\n\t\tsans-serif,\r\n\t\t\"Apple Color Emoji\",\r\n\t\t\"Segoe UI Emoji\",\r\n\t\t\"Segoe UI Symbol\",\r\n\t\t\"Noto Color Emoji\";\r\n\t--font-family-monospace: SFMono-Regular,\r\n\t\tMenlo, Monaco,\r\n\t\tConsolas,\r\n\t\t\"Liberation Mono\",\r\n\t\t\"Courier New\",\r\n\t\tmonospace;\r\n\t--font-family-haffer: \"haffer\";\r\n\r\n\t//-- Styles\r\n\t--font-size: 16px;\r\n\t--font-weight: 500;\r\n\t--line-height: 160%;\r\n\r\n\t// Colors\r\n\t$hex-marreta: #fff;\r\n\t$hex-text: #000;\r\n $hex-textmuted: #000;\r\n $hex-link: #000;\r\n\r\n\t@include mixin.create-color('marreta', $hex-marreta);\r\n @include mixin.create-color('text', $hex-text);\r\n @include mixin.create-color('textmuted', $hex-textmuted);\r\n @include mixin.create-color('link', $hex-link);\r\n\r\n\t// Borders\r\n\t--border-radius-default: 1rem;\r\n\r\n\t// Spacing\r\n\t--container_spacing: 24px;\r\n\t@include mixin.devices(desktop) {\r\n --container_spacing: 64px;\r\n }\r\n}\r\n\r\nhtml {\r\n\tscroll-behavior: smooth;\r\n}\r\n@media screen and (prefers-reduced-motion: reduce) {\r\n\thtml {\r\n\t\tscroll-behavior: auto;\r\n\t}\r\n}","\r\n@mixin create-color($name, $color) {\r\n --#{$name}: #{$color};\r\n --#{$name}-lighten: color.scale($color, $lightness: -100%);\r\n --#{$name}-darken: color.adjust($color, $lightness: -10%)\r\n} \r\n\r\n@mixin devices($breakpoint) {\r\n\t@if $breakpoint == desktop {\r\n\t\t@media only screen and (min-width: 1200px) {\r\n\t\t\t@content;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n@mixin background-image-svg($name) {\r\n\tbackground-image: url(\"../images/icons/#{$name}.svg\");\r\n}\r\n\r\n@mixin icon($name) {\r\n\t.icon--#{$name} {\r\n\t\t@include background-image-svg($name);\r\n\t}\r\n}","@use \"mixin\";\n\n// Default\r\nbody {\r\n\tfont-family: var(--font-family-haffer);\r\n\tfont-size: var(--font-size);\r\n\tfont-weight: var(--font-weight);\r\n\tline-height: var(--line-height);\r\n\tcolor: var(--text);\r\n\ttext-align: left;\r\n\tbackground-color: var(--background);\r\n\tmin-width: 320px;\r\n}\r\n\r\na {\r\n\ttext-decoration: none;\r\n\tcolor: var(--link);\r\n\r\n\t&:hover {\r\n\t\ttext-decoration: none;\r\n\t\tcolor: var(--link-lighten);\r\n\t}\r\n}\r\n\r\n.container {\r\n\tpadding-right: var(--container_spacing);\r\n\tpadding-left: var(--container_spacing);\r\n\tmargin-right: auto;\r\n\tmargin-left: auto;\r\n\r\n\t@include mixin.devices(desktop) {\r\n max-width: 1248px;\r\n }\r\n\r\n}","@use \"mixin\";\r\n\r\n// https://icons.getbootstrap.com/\r\n// https://icofont.com/icons\r\n\r\n// https://jakearchibald.github.io/svgomg/\r\n// https://yoksel.github.io/url-encoder/\r\n// https://codepen.io/sosuke/pen/Pjoqqp\r\n\r\n.icon {\r\n\tdisplay: inline-block;\r\n\tvertical-align: -0.125em;\r\n\tfill: currentcolor;\r\n\twidth: 1em;\r\n\theight: 1em;\r\n\tbackground-repeat: no-repeat;\r\n\tbackground-position: center center;\r\n\tbackground-size: 100% auto;\r\n}\r\n\r\n@include mixin.icon('marreta');\r\n@include mixin.icon('android');\r\n@include mixin.icon('apple');\r\n@include mixin.icon('archive');\r\n@include mixin.icon('bookmark');\r\n@include mixin.icon('bsky');\r\n@include mixin.icon('bypass');\r\n@include mixin.icon('chrome');\r\n@include mixin.icon('code');\r\n@include mixin.icon('error');\r\n@include mixin.icon('firefox');\r\n@include mixin.icon('link');\r\n@include mixin.icon('refresh');\r\n@include mixin.icon('search');\r\n@include mixin.icon('telegram');\r\n@include mixin.icon('warning');"]}
\ No newline at end of file
+{"version":3,"sources":["home.scss","../../node_modules/normalize.css/normalize.css","_fonts.scss","_root.scss","_mixin.scss","_base.scss","_icons.scss"],"names":[],"mappings":"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","file":"style.css","sourcesContent":["header {\r\n display: grid;\r\n grid-template-columns: 1fr 2fr 1fr;\r\n align-items: center;\r\n padding: 42px 0;\r\n\r\n .brand {\r\n display: flex;\r\n align-items: center;\r\n .icon {\r\n margin-right: 6px;\r\n &--marreta {\r\n width: 32px;\r\n height: 32px;\r\n }\r\n }\r\n h1 {\r\n font-family: var(--font-family-unna);\r\n color: #000;\r\n }\r\n }\r\n\r\n nav {\r\n display: flex;\r\n justify-content: center;\r\n gap: 48px;\r\n\r\n a {\r\n text-decoration: none;\r\n color: #333;\r\n\r\n &:hover {\r\n color: #007bff;\r\n }\r\n }\r\n\r\n .integration {\r\n position: relative;\r\n\r\n &__toggle {\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n color: #333;\r\n\r\n &:hover {\r\n color: #007bff;\r\n }\r\n }\r\n\r\n &__menu {\r\n display: none;\r\n position: absolute;\r\n top: 110%;\r\n left: 0;\r\n border-radius: 16px;\r\n background-color: #F4F4F5;\r\n border: 4px solid #F4F4F5;\r\n z-index: 10;\r\n box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.05);\r\n box-shadow: 0px 10px 15px 0px rgba(0, 0, 0, 0.1);\r\n box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.04);\r\n box-shadow: 0px 20px 25px 0px rgba(0, 0, 0, 0.1);\r\n \r\n a {\r\n margin-bottom: 4px;\r\n &:first-child {\r\n border-top-left-radius: 16px;\r\n border-top-right-radius: 16px;\r\n }\r\n &:last-child {\r\n margin-bottom: 0;\r\n border-bottom-left-radius: 16px;\r\n border-bottom-right-radius: 16px;\r\n }\r\n color: var(--text);\r\n font-weight: 600;\r\n display: block;\r\n padding: 8px 16px;\r\n background-color: #fff;\r\n display: flex;\r\n align-items: center;\r\n &:hover {\r\n color: var(--marreta);\r\n }\r\n span {\r\n display: inline-block;\r\n }\r\n }\r\n .name {\r\n width: 140px;\r\n }\r\n }\r\n\r\n &.open {\r\n .integration__menu {\r\n display: block;\r\n }\r\n\r\n .arrow {\r\n top: 1px;\r\n transform: rotate(-45deg);\r\n }\r\n }\r\n\r\n .arrow {\r\n position: relative;\r\n top: -3px;\r\n content: \"\";\r\n display: inline-block;\r\n width: 6px;\r\n height: 6px;\r\n border-right: 2px solid black;\r\n border-top: 2px solid black;\r\n transform: rotate(135deg);\r\n margin-right: 0;\r\n margin-left: 5px;\r\n }\r\n }\r\n }\r\n\r\n .extension {\r\n display: flex;\r\n justify-content: flex-end;\r\n position: relative;\r\n\r\n &__toggle {\r\n background-color: var(--marreta);\r\n border-radius: 40px;\r\n border: 0;\r\n cursor: pointer;\r\n color: #FFF;\r\n font-weight: 600;\r\n padding: 12px 24px;\r\n line-height: 1.3em;\r\n &:hover {\r\n background-color: var(--marreta-darken);\r\n }\r\n }\r\n\r\n &__menu {\r\n display: none;\r\n position: absolute;\r\n top: 110%;\r\n right: 0;\r\n border-radius: 16px;\r\n background-color: #F4F4F5;\r\n border: 4px solid #F4F4F5;\r\n z-index: 10;\r\n box-shadow: 0px 4px 6px 0px rgba(0, 0, 0, 0.05);\r\n box-shadow: 0px 10px 15px 0px rgba(0, 0, 0, 0.1);\r\n box-shadow: 0px 10px 10px 0px rgba(0, 0, 0, 0.04);\r\n box-shadow: 0px 20px 25px 0px rgba(0, 0, 0, 0.1);\r\n\r\n a {\r\n margin-bottom: 4px;\r\n &:first-child {\r\n border-top-left-radius: 16px;\r\n border-top-right-radius: 16px;\r\n }\r\n &:last-child {\r\n margin-bottom: 0;\r\n border-bottom-left-radius: 16px;\r\n border-bottom-right-radius: 16px;\r\n }\r\n color: var(--text);\r\n font-weight: 600;\r\n display: block;\r\n padding: 8px 16px;\r\n background-color: #fff;\r\n display: flex;\r\n align-items: center;\r\n &:hover {\r\n color: var(--marreta);\r\n }\r\n span {\r\n display: inline-block;\r\n }\r\n }\r\n .name {\r\n width: 140px;\r\n }\r\n }\r\n\r\n &.open {\r\n .extension__toggle {\r\n background-color: #F4F4F5;\r\n color: var(--textmuted);\r\n }\r\n .extension__menu {\r\n display: block;\r\n }\r\n }\r\n }\r\n}\r\n\r\nmain {\r\n .description {\r\n position: relative;\r\n z-index: 3;\r\n font-family: var(--font-family-unna);\r\n font-size: 64px;\r\n line-height: 61.44px;\r\n text-align: center;\r\n color: #000;\r\n max-width: 512px;\r\n margin: 0 auto;\r\n }\r\n\r\n .walls_destroyed {\r\n position: relative;\r\n z-index: 3;\r\n max-width: 512px;\r\n margin: 22px auto;\r\n text-align: center;\r\n\r\n span {\r\n color: var(--textmuted);\r\n }\r\n }\r\n\r\n form {\r\n z-index: 2;\r\n position: relative;\r\n\r\n .fields {\r\n &::before {\r\n content: '';\r\n background-image: url(../assets/images/wall.png);\r\n background-repeat: no-repeat;\r\n background-size: 100% 100%;\r\n width: 422px;\r\n height: 306px;\r\n position: absolute;\r\n top: -110px;\r\n right: -180px;\r\n z-index: 1;\r\n }\r\n\r\n max-width: 470px;\r\n margin: 0 auto;\r\n position: relative;\r\n\r\n .input {\r\n position: relative;\r\n z-index: 2;\r\n padding-right: 28px;\r\n padding-top: 2px;\r\n\r\n .icon {\r\n z-index: 2;\r\n\r\n &--link {\r\n position: absolute;\r\n top: 50%;\r\n left: 1rem;\r\n margin-top: -6px;\r\n }\r\n }\r\n\r\n input {\r\n background-color: #F4F4F5;\r\n padding: 16px 0 16px 44px;\r\n border: 0;\r\n border-radius: 8px;\r\n width: 100%;\r\n box-sizing: border-box;\r\n position: relative;\r\n line-height: 1.3em;\r\n }\r\n }\r\n\r\n button {\r\n position: relative;\r\n background-color: var(--marreta);\r\n border-radius: 50%;\r\n height: 56px;\r\n width: 56px;\r\n border: 0;\r\n z-index: 3;\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n cursor: pointer;\r\n\r\n &:hover {\r\n background-color: var(--marreta-darken);\r\n }\r\n\r\n .icon {\r\n width: 23px;\r\n height: 23px;\r\n\r\n &--refresh,\r\n &--marreta {\r\n filter: invert(100%) sepia(32%) saturate(8%) hue-rotate(23deg) brightness(102%) contrast(100%);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n .adblock {\r\n color: var(--textmuted);\r\n font-size: 13px;\r\n line-height: 1.2em;\r\n text-align: center;\r\n max-width: 470px;\r\n position: relative;\r\n z-index: 3;\r\n margin: 22px auto 0 auto;\r\n }\r\n\r\n .plus {\r\n z-index: 3;\r\n position: relative;\r\n display: grid;\r\n grid-auto-columns: 1fr;\r\n grid-template-columns: 1fr 1fr;\r\n gap: 0px 28px;\r\n align-items: start;\r\n max-width: 960px;\r\n margin: 62px auto 24px auto;\r\n\r\n h2 {\r\n font-size: 16px;\r\n padding-bottom: 8px;\r\n margin: 0;\r\n\r\n .icon {\r\n margin-right: 10px;\r\n }\r\n }\r\n\r\n .text {\r\n font-size: 14px;\r\n color: var(--textmuted);\r\n padding-left: 26px;\r\n\r\n ol {\r\n padding-left: 16px;\r\n margin: 0;\r\n }\r\n\r\n p {\r\n margin: 0;\r\n }\r\n\r\n strong {\r\n font-weight: 600;\r\n color: var(--text);\r\n }\r\n }\r\n\r\n .bookmarklet {\r\n a {\r\n border: 2px solid var(--marreta);\r\n color: var(--marreta);\r\n border-radius: 40px;\r\n padding: 8px 16px;\r\n margin-top: 16px;\r\n display: inline-block;\r\n font-weight: 600;\r\n\r\n &:hover {\r\n border-color: var(--marreta-darken);\r\n color: var(--marreta-darken);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfooter {}","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","@font-face {\r\n font-family: 'inter';\r\n src: url('../dist/fonts/inter-500.eot');\r\n src: local('Inter Medium'), local('Inter-Medium'),\r\n url('../dist/fonts/inter-500.woff2') format('woff2'),\r\n url('../dist/fonts/inter-500.woff') format('woff'),\r\n url('../dist/fonts/inter-500.ttf') format('truetype');\r\n font-weight: 500;\r\n font-style: normal;\r\n font-display: swap;\r\n}\r\n\r\n@font-face {\r\n font-family: 'inter';\r\n src: url('../dist/fonts/inter-600.eot');\r\n src: local('Inter SemiBold'), local('Inter-SemiBold'),\r\n url('../dist/fonts/inter-600.woff2') format('woff2'),\r\n url('../dist/fonts/inter-600.woff') format('woff'),\r\n url('../dist/fonts/inter-600.ttf') format('truetype');\r\n font-weight: 600;\r\n font-style: normal;\r\n font-display: swap;\r\n}\r\n\r\n@font-face {\r\n font-family: 'unna';\r\n src: url('../dist/fonts/unna-400.eot');\r\n src: local('Unna Regular'), local('Unna-Regular'),\r\n url('../dist/fonts/unna-400.woff2') format('woff2'),\r\n url('../dist/fonts/unna-400.woff') format('woff'),\r\n url('../dist/fonts/unna-400.ttf') format('truetype');\r\n font-weight: 400;\r\n font-style: normal;\r\n font-display: swap;\r\n}","@use \"mixin\";\r\n\r\n:root {\r\n\t// Fonts\r\n\t--font-family-sans-serif: -apple-system,\r\n\t\tBlinkMacSystemFont,\r\n\t\t\"Segoe UI\",\r\n\t\tRoboto,\r\n\t\t\"Helvetica Neue\",\r\n\t\tArial,\r\n\t\t\"Noto Sans\",\r\n\t\t\"Liberation Sans\",\r\n\t\tsans-serif,\r\n\t\t\"Apple Color Emoji\",\r\n\t\t\"Segoe UI Emoji\",\r\n\t\t\"Segoe UI Symbol\",\r\n\t\t\"Noto Color Emoji\";\r\n\t--font-family-monospace: SFMono-Regular,\r\n\t\tMenlo, Monaco,\r\n\t\tConsolas,\r\n\t\t\"Liberation Mono\",\r\n\t\t\"Courier New\",\r\n\t\tmonospace;\r\n\t--font-family-inter: \"inter\";\r\n --font-family-unna: \"unna\";\r\n\r\n\t//-- Styles\r\n\t--font-size: 16px;\r\n\t--font-weight: 500;\r\n\t--line-height: 160%;\r\n\r\n\t// Colors\r\n\t@include mixin.create-color('marreta', #3B82F6);\r\n @include mixin.create-color('text', #484848);\r\n @include mixin.create-color('textmuted', #818181);\r\n @include mixin.create-color('link', #3B82F6);\r\n\r\n\t// Spacing\r\n\t--container_spacing: 24px;\r\n\t@include mixin.devices(desktop) {\r\n --container_spacing: 64px;\r\n }\r\n}\r\n\r\nhtml {\r\n\tscroll-behavior: smooth;\r\n}\r\n@media screen and (prefers-reduced-motion: reduce) {\r\n\thtml {\r\n\t\tscroll-behavior: auto;\r\n\t}\r\n}","@use \"sass:math\";\r\n@use \"sass:color\";\r\n\r\n@mixin create-color($name, $hex) {\r\n --#{$name}: #{$hex};\r\n --#{$name}-lighten: #{color.adjust($hex, $lightness: 5%)};\r\n --#{$name}-darken: #{color.adjust($hex, $lightness: -10%)};\r\n} \r\n\r\n@mixin devices($breakpoint) {\r\n\t@if $breakpoint == desktop {\r\n\t\t@media only screen and (min-width: 1200px) {\r\n\t\t\t@content;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n@mixin icon($name, $filter) {\r\n\t.icon--#{$name} {\r\n\t\tbackground-image: url(\"../dist/icons/#{$name}.svg\");\r\n filter: #{$filter};\r\n\t}\r\n}","@use \"mixin\";\r\n\r\n// Default\r\nbody {\r\n\tfont-family: var(--font-family-inter);\r\n\tfont-size: var(--font-size);\r\n\tfont-weight: var(--font-weight);\r\n\tline-height: var(--line-height);\r\n\tcolor: var(--text);\r\n\ttext-align: left;\r\n\tbackground-color: var(--background);\r\n\tmin-width: 320px;\r\n}\r\n\r\na {\r\n\ttext-decoration: none;\r\n\tcolor: var(--link);\r\n\r\n\t&:hover {\r\n\t\ttext-decoration: none;\r\n\t\tcolor: var(--link-lighten);\r\n\t}\r\n}\r\n\r\n.container {\r\n\tpadding-right: var(--container_spacing);\r\n\tpadding-left: var(--container_spacing);\r\n\tmargin-right: auto;\r\n\tmargin-left: auto;\r\n\r\n\t@include mixin.devices(desktop) {\r\n max-width: 1248px;\r\n }\r\n\r\n}","@use \"mixin\";\r\n\r\n// https://icons.getbootstrap.com/\r\n// https://icofont.com/icons\r\n\r\n// https://jakearchibald.github.io/svgomg/\r\n// https://yoksel.github.io/url-encoder/\r\n// https://codepen.io/sosuke/pen/Pjoqqp\r\n\r\n.icon {\r\n display: inline-block;\r\n vertical-align: -0.125em;\r\n fill: currentcolor;\r\n width: 16px;\r\n height: 16px;\r\n background-repeat: no-repeat;\r\n background-position: center center;\r\n background-size: 100% auto;\r\n &--bookmark {\r\n background-size: auto 100% !important;\r\n }\r\n}\r\n\r\n@include mixin.icon('marreta', 'invert(43%) sepia(74%) saturate(2288%) hue-rotate(201deg) brightness(98%) contrast(97%)');\r\n@include mixin.icon('bookmark', 'invert(80%) sepia(46%) saturate(1512%) hue-rotate(340deg) brightness(106%) contrast(97%)');\r\n\r\n@include mixin.icon('android', 'invert(72%) sepia(34%) saturate(778%) hue-rotate(32deg) brightness(97%) contrast(88%)');\r\n@include mixin.icon('apple', 'invert(0%) sepia(21%) saturate(7425%) hue-rotate(12deg) brightness(96%) contrast(96%)');\r\n@include mixin.icon('bsky', 'invert(47%) sepia(66%) saturate(4445%) hue-rotate(195deg) brightness(98%) contrast(104%)');\r\n@include mixin.icon('telegram', 'invert(61%) sepia(86%) saturate(1341%) hue-rotate(166deg) brightness(96%) contrast(85%)');\r\n@include mixin.icon('chrome', 'invert(40%) sepia(90%) saturate(1163%) hue-rotate(203deg) brightness(104%) contrast(92%)');\r\n@include mixin.icon('firefox', 'invert(57%) sepia(43%) saturate(1854%) hue-rotate(360deg) brightness(102%) contrast(106%)');\r\n\r\n@include mixin.icon('link', 'invert(53%) sepia(12%) saturate(17%) hue-rotate(39deg) brightness(94%) contrast(91%)');\r\n@include mixin.icon('refresh', 'invert(100%) sepia(32%) saturate(8%) hue-rotate(23deg) brightness(102%) contrast(100%)');\r\n\r\n@include mixin.icon('error', 'invert(30%) sepia(58%) saturate(3703%) hue-rotate(336deg) brightness(90%) contrast(91%)');\r\n@include mixin.icon('warning', 'invert(89%) sepia(25%) saturate(5861%) hue-rotate(353deg) brightness(101%) contrast(101%)');"]}
\ No newline at end of file
diff --git a/app/dist/fonts/inter-500.css b/app/dist/fonts/inter-500.css
deleted file mode 100644
index 359844b..0000000
--- a/app/dist/fonts/inter-500.css
+++ /dev/null
@@ -1,13 +0,0 @@
-@font-face {
- font-family: "Inter 18pt Medium";
- src: url("inter-500.eot"); /* IE9 */
- src: url("inter-500.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
- url("inter-500.woff2") format("woff2"), /* chrome 36+, firefox 39+,iOS 10+, Android 67+ */
- url("inter-500.woff") format("woff"), /* chrome, firefox */
- url("inter-500.ttf") format("truetype"), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
- url("inter-500.svg#Inter 18pt Medium") format("svg"); /* iOS 4.1- */
- font-style: normal;
- font-weight: normal;
-}
-
-
diff --git a/app/dist/fonts/inter-500.eot b/app/dist/fonts/inter-500.eot
index a5e3abf..de713eb 100644
Binary files a/app/dist/fonts/inter-500.eot and b/app/dist/fonts/inter-500.eot differ
diff --git a/app/dist/fonts/inter-500.svg b/app/dist/fonts/inter-500.svg
deleted file mode 100644
index 284339f..0000000
--- a/app/dist/fonts/inter-500.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/dist/fonts/inter-500.ttf b/app/dist/fonts/inter-500.ttf
index 13ba2e9..71d9017 100644
Binary files a/app/dist/fonts/inter-500.ttf and b/app/dist/fonts/inter-500.ttf differ
diff --git a/app/dist/fonts/inter-500.woff b/app/dist/fonts/inter-500.woff
index 8c5aa70..7e54d2a 100644
Binary files a/app/dist/fonts/inter-500.woff and b/app/dist/fonts/inter-500.woff differ
diff --git a/app/dist/fonts/inter-500.woff2 b/app/dist/fonts/inter-500.woff2
new file mode 100644
index 0000000..fa2adb3
Binary files /dev/null and b/app/dist/fonts/inter-500.woff2 differ
diff --git a/app/dist/fonts/inter-600.css b/app/dist/fonts/inter-600.css
deleted file mode 100644
index 7304c10..0000000
--- a/app/dist/fonts/inter-600.css
+++ /dev/null
@@ -1,13 +0,0 @@
-@font-face {
- font-family: "Inter 18pt SemiBold";
- src: url("inter-600.eot"); /* IE9 */
- src: url("inter-600.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
- url("inter-600.woff2") format("woff2"), /* chrome 36+, firefox 39+,iOS 10+, Android 67+ */
- url("inter-600.woff") format("woff"), /* chrome, firefox */
- url("inter-600.ttf") format("truetype"), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
- url("inter-600.svg#Inter 18pt SemiBold") format("svg"); /* iOS 4.1- */
- font-style: normal;
- font-weight: normal;
-}
-
-
diff --git a/app/dist/fonts/inter-600.eot b/app/dist/fonts/inter-600.eot
index 297b8fb..a2ae712 100644
Binary files a/app/dist/fonts/inter-600.eot and b/app/dist/fonts/inter-600.eot differ
diff --git a/app/dist/fonts/inter-600.svg b/app/dist/fonts/inter-600.svg
deleted file mode 100644
index f0c76d2..0000000
--- a/app/dist/fonts/inter-600.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/dist/fonts/inter-600.ttf b/app/dist/fonts/inter-600.ttf
index 1adb71a..053185e 100644
Binary files a/app/dist/fonts/inter-600.ttf and b/app/dist/fonts/inter-600.ttf differ
diff --git a/app/dist/fonts/inter-600.woff b/app/dist/fonts/inter-600.woff
index 6e72267..f83d730 100644
Binary files a/app/dist/fonts/inter-600.woff and b/app/dist/fonts/inter-600.woff differ
diff --git a/app/dist/fonts/inter-600.woff2 b/app/dist/fonts/inter-600.woff2
new file mode 100644
index 0000000..54416e1
Binary files /dev/null and b/app/dist/fonts/inter-600.woff2 differ
diff --git a/app/dist/fonts/unna-400.css b/app/dist/fonts/unna-400.css
deleted file mode 100644
index 90dc738..0000000
--- a/app/dist/fonts/unna-400.css
+++ /dev/null
@@ -1,13 +0,0 @@
-@font-face {
- font-family: "Unna";
- src: url("unna-400.eot"); /* IE9 */
- src: url("unna-400.eot?#iefix") format("embedded-opentype"), /* IE6-IE8 */
- url("unna-400.woff2") format("woff2"), /* chrome 36+, firefox 39+,iOS 10+, Android 67+ */
- url("unna-400.woff") format("woff"), /* chrome, firefox */
- url("unna-400.ttf") format("truetype"), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
- url("unna-400.svg#Unna") format("svg"); /* iOS 4.1- */
- font-style: normal;
- font-weight: normal;
-}
-
-
diff --git a/app/dist/fonts/unna-400.eot b/app/dist/fonts/unna-400.eot
index de8a745..56e8034 100644
Binary files a/app/dist/fonts/unna-400.eot and b/app/dist/fonts/unna-400.eot differ
diff --git a/app/dist/fonts/unna-400.svg b/app/dist/fonts/unna-400.svg
deleted file mode 100644
index 90404e5..0000000
--- a/app/dist/fonts/unna-400.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/dist/fonts/unna-400.ttf b/app/dist/fonts/unna-400.ttf
index 28dc444..b0c8227 100644
Binary files a/app/dist/fonts/unna-400.ttf and b/app/dist/fonts/unna-400.ttf differ
diff --git a/app/dist/fonts/unna-400.woff b/app/dist/fonts/unna-400.woff
index 70715c6..6d6933f 100644
Binary files a/app/dist/fonts/unna-400.woff and b/app/dist/fonts/unna-400.woff differ
diff --git a/app/dist/fonts/unna-400.woff2 b/app/dist/fonts/unna-400.woff2
new file mode 100644
index 0000000..df682cc
Binary files /dev/null and b/app/dist/fonts/unna-400.woff2 differ
diff --git a/app/dist/icons/archive.svg b/app/dist/icons/archive.svg
deleted file mode 100644
index 1b457d9..0000000
--- a/app/dist/icons/archive.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/dist/icons/bypass.svg b/app/dist/icons/bypass.svg
deleted file mode 100644
index 2d4d4ff..0000000
--- a/app/dist/icons/bypass.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/dist/icons/code.svg b/app/dist/icons/code.svg
deleted file mode 100644
index 3b12b6b..0000000
--- a/app/dist/icons/code.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/dist/icons/search.svg b/app/dist/icons/search.svg
deleted file mode 100644
index 6b6bbb3..0000000
--- a/app/dist/icons/search.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/dist/images/wall.png b/app/dist/images/wall.png
index 311be1a..ccb342a 100644
Binary files a/app/dist/images/wall.png and b/app/dist/images/wall.png differ
diff --git a/app/dist/images/wall.webp b/app/dist/images/wall.webp
index ee7aff0..fa04b19 100644
Binary files a/app/dist/images/wall.webp and b/app/dist/images/wall.webp differ
diff --git a/app/dist/js/script.js b/app/dist/js/script.js
deleted file mode 100644
index 64c5ff2..0000000
--- a/app/dist/js/script.js
+++ /dev/null
@@ -1,7 +0,0 @@
-function validateForm(){var r=document.getElementById("url"),e=document.querySelector('button[type="submit"]'),t=r.value.trim();if(!t)return showError("Por favor, insira uma URL"),!1;if(!/^https?:\/\//i.test(t))return showError("A URL deve começar com http:// ou https://"),!1;try{new URL(t)}catch(r){return showError("Formato de URL inválido"),!1}return r.readonly=!0,e.disabled=!0,e.classList.add("cursor-wait","disabled:bg-blue-400"),e.classList.remove("hover:bg-blue-700"),r.classList.add("cursor-wait","disabled:bg-gray-50","focus:outline-none"),e.innerHTML=`
-
- Analisando...
- `,!0}function showError(r){var e=document.getElementById("urlForm"),t=e.querySelector(".error-message"),t=(t&&t.remove(),document.createElement("div"));t.className="error-message mt-4 text-base text-red-600",t.innerHTML=`
-
- `+r,e.appendChild(t)}"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/service-worker.js").then(()=>{}).catch(()=>{})});
-//# sourceMappingURL=script.js.map
diff --git a/app/dist/js/script.js.map b/app/dist/js/script.js.map
deleted file mode 100644
index 54ebc3a..0000000
--- a/app/dist/js/script.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["scripts.js"],"names":["validateForm","urlInput","document","getElementById","submitButton","querySelector","url","value","trim","showError","test","URL","e","readonly","disabled","classList","add","remove","innerHTML","message","form","existingError","errorDiv","createElement","className","appendChild","navigator","window","addEventListener","serviceWorker","register","then","catch"],"mappings":"AAwBA,SAAAA,eACA,IAAAC,EAAAC,SAAAC,eAAA,KAAA,EACAC,EAAAF,SAAAG,cAAA,uBAAA,EACAC,EAAAL,EAAAM,MAAAC,KAAA,EAIA,GAAA,CAAAF,EAEA,OADAG,UAAA,2BAAA,EACA,CAAA,EAKA,GAAA,CAAA,gBAAAC,KAAAJ,CAAA,EAEA,OADAG,UAAA,4CAAA,EACA,CAAA,EAKA,IACA,IAAAE,IAAAL,CAAA,CAIA,CAHA,MAAAM,GAEA,OADAH,UAAA,yBAAA,EACA,CAAA,CACA,CAqBA,OAjBAR,EAAAY,SAAA,CAAA,EACAT,EAAAU,SAAA,CAAA,EAIAV,EAAAW,UAAAC,IAAA,cAAA,sBAAA,EACAZ,EAAAW,UAAAE,OAAA,mBAAA,EAEAhB,EAAAc,UAAAC,IAAA,cAAA,sBAAA,oBAAA,EAIAZ,EAAAc;;;MAKA,CAAA,CACA,CAiBA,SAAAT,UAAAU,GACA,IAAAC,EAAAlB,SAAAC,eAAA,SAAA,EACAkB,EAAAD,EAAAf,cAAA,gBAAA,EAUAiB,GANAD,GACAA,EAAAJ,OAAA,EAKAf,SAAAqB,cAAA,KAAA,GACAD,EAAAE,UAAA,4CACAF,EAAAJ;;UAEAC,EAEAC,EAAAK,YAAAH,CAAA,CACA,CASA,kBAAAI,WACAC,OAAAC,iBAAA,OAAA,KACAF,UAAAG,cAAAC,SAAA,oBAAA,EACAC,KAAA,MAGA,EACAC,MAAA,MAGA,CACA,CAAA","file":"script.js","sourcesContent":["/**\r\n * JavaScript functions for form validation and error handling\r\n * Funções JavaScript para validação de formulário e manipulação de erros\r\n */\r\n\r\n/**\r\n * Validates the form before submission\r\n * \r\n * Checks:\r\n * - If URL is not empty\r\n * - If URL starts with http:// or https://\r\n * - If URL has a valid format\r\n * \r\n * @returns {boolean} True if URL is valid, False otherwise\r\n * \r\n * Valida o formulário antes do envio\r\n * \r\n * Verifica:\r\n * - Se a URL não está vazia\r\n * - Se a URL começa com http:// ou https://\r\n * - Se a URL tem um formato válido\r\n * \r\n * @returns {boolean} True se a URL for válida, False caso contrário\r\n */\r\nfunction validateForm() {\r\n const urlInput = document.getElementById('url');\r\n const submitButton = document.querySelector('button[type=\"submit\"]');\r\n const url = urlInput.value.trim();\r\n \r\n // Check if URL is not empty\r\n // Verifica se a URL não está vazia\r\n if (!url) {\r\n showError('Por favor, insira uma URL');\r\n return false;\r\n }\r\n\r\n // Check if URL starts with http:// or https://\r\n // Verifica se a URL começa com http:// ou https://\r\n if (!/^https?:\\/\\//i.test(url)) {\r\n showError('A URL deve começar com http:// ou https://');\r\n return false;\r\n }\r\n\r\n // Try to create a URL object to validate format\r\n // Tenta criar um objeto URL para validar o formato\r\n try {\r\n new URL(url);\r\n } catch (e) {\r\n showError('Formato de URL inválido');\r\n return false;\r\n }\r\n\r\n // Disable input and button\r\n // Desabilita o input e o botão\r\n urlInput.readonly = true;\r\n submitButton.disabled = true;\r\n \r\n // Add Tailwind disabled classes\r\n // Adiciona classes de disabled do Tailwind\r\n submitButton.classList.add('cursor-wait', 'disabled:bg-blue-400');\r\n submitButton.classList.remove('hover:bg-blue-700');\r\n\r\n urlInput.classList.add('cursor-wait', 'disabled:bg-gray-50', 'focus:outline-none');\r\n\r\n // Add loading state to button\r\n // Adiciona estado de loading ao botão\r\n submitButton.innerHTML = `\r\n
\r\n Analisando...\r\n `;\r\n\r\n return true;\r\n}\r\n\r\n/**\r\n * Displays an error message below the form\r\n * \r\n * Removes any existing error message before displaying the new one.\r\n * The message is displayed with an error icon and red formatting.\r\n * \r\n * @param {string} message Error message to be displayed\r\n * \r\n * Exibe uma mensagem de erro abaixo do formulário\r\n * \r\n * Remove qualquer mensagem de erro existente antes de exibir a nova.\r\n * A mensagem é exibida com um ícone de erro e formatação em vermelho.\r\n * \r\n * @param {string} message Mensagem de erro a ser exibida\r\n */\r\nfunction showError(message) {\r\n const form = document.getElementById('urlForm');\r\n const existingError = form.querySelector('.error-message');\r\n \r\n // Remove previous error message if it exists\r\n // Remove mensagem de erro anterior se existir\r\n if (existingError) {\r\n existingError.remove();\r\n }\r\n\r\n // Create and add new error message\r\n // Cria e adiciona nova mensagem de erro\r\n const errorDiv = document.createElement('div');\r\n errorDiv.className = 'error-message mt-4 text-base text-red-600';\r\n errorDiv.innerHTML = `\r\n
\r\n ${message}`;\r\n \r\n form.appendChild(errorDiv);\r\n}\r\n\r\n/**\r\n * Service Worker registration for PWA functionality\r\n * Registers a service worker to enable offline capabilities and PWA features\r\n * \r\n * Registro do Service Worker para funcionalidade PWA\r\n * Registra um service worker para habilitar recursos offline e funcionalidades PWA\r\n */\r\nif ('serviceWorker' in navigator) {\r\n window.addEventListener('load', () => {\r\n navigator.serviceWorker.register('/service-worker.js')\r\n .then(() => {\r\n // Service Worker registered successfully\r\n // Service Worker registrado com sucesso\r\n })\r\n .catch(() => {\r\n // Service Worker registration failed\r\n // Falha no registro do Service Worker\r\n });\r\n });\r\n}\r\n"]}
\ No newline at end of file
diff --git a/app/dist/js/scripts.js b/app/dist/js/scripts.js
new file mode 100644
index 0000000..c6a2345
--- /dev/null
+++ b/app/dist/js/scripts.js
@@ -0,0 +1,2 @@
+"serviceWorker"in navigator&&window.addEventListener("load",()=>{navigator.serviceWorker.register("/service-worker.js").then(()=>{}).catch(()=>{})}),document.addEventListener("DOMContentLoaded",function(){let t=document.querySelector(".integration");var e=document.querySelector(".integration__toggle");let o=document.querySelector(".extension");var n=document.querySelector(".extension__toggle");let r=e=>{e!==t&&t.classList.remove("open"),e!==o&&o.classList.remove("open")};e.addEventListener("click",e=>{e.stopPropagation(),r(t),t.classList.toggle("open")}),n.addEventListener("click",e=>{e.stopPropagation(),r(o),o.classList.toggle("open")}),t.addEventListener("click",e=>{e.stopPropagation()}),o.addEventListener("click",e=>{e.stopPropagation()}),document.addEventListener("click",()=>{t.classList.remove("open"),o.classList.remove("open")})});
+//# sourceMappingURL=scripts.js.map
diff --git a/app/dist/js/scripts.js.map b/app/dist/js/scripts.js.map
new file mode 100644
index 0000000..5e61e22
--- /dev/null
+++ b/app/dist/js/scripts.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["scripts.js"],"names":["navigator","window","addEventListener","serviceWorker","register","then","catch","document","integration","querySelector","integrationToggle","extension","extensionToggle","closeOtherMenus","exceptMenu","classList","remove","e","stopPropagation","toggle"],"mappings":"AAIA,kBAAAA,WACAC,OAAAC,iBAAA,OAAA,KACAF,UAAAG,cAAAC,SAAA,oBAAA,EACAC,KAAA,MAEA,EACAC,MAAA,MAEA,CACA,CAAA,EAMAC,SAAAL,iBAAA,mBAAA,WACA,IAAAM,EAAAD,SAAAE,cAAA,cAAA,EACA,IAAAC,EAAAH,SAAAE,cAAA,sBAAA,EACA,IAAAE,EAAAJ,SAAAE,cAAA,YAAA,EACA,IAAAG,EAAAL,SAAAE,cAAA,oBAAA,EAGA,IAMAI,EAAA,IACAC,IAAAN,GACAA,EAAAO,UAAAC,OAAA,MAAA,EAEAF,IAAAH,GACAA,EAAAI,UAAAC,OAAA,MAAA,CAEA,EAEAN,EAAAR,iBAAA,QAAA,IACAe,EAAAC,gBAAA,EACAL,EAAAL,CAAA,EACAA,EAAAO,UAAAI,OAAA,MAAA,CACA,CAAA,EAEAP,EAAAV,iBAAA,QAAA,IACAe,EAAAC,gBAAA,EACAL,EAAAF,CAAA,EACAA,EAAAI,UAAAI,OAAA,MAAA,CACA,CAAA,EAGAX,EAAAN,iBAAA,QAAA,IACAe,EAAAC,gBAAA,CACA,CAAA,EAEAP,EAAAT,iBAAA,QAAA,IACAe,EAAAC,gBAAA,CACA,CAAA,EAGAX,SAAAL,iBAAA,QAAA,KApCAM,EAAAO,UAAAC,OAAA,MAAA,EACAL,EAAAI,UAAAC,OAAA,MAAA,CAqCA,CAAA,CACA,CAAA","file":"scripts.js","sourcesContent":["/**\r\n * Service Worker registration for PWA functionality\r\n * Registers a service worker to enable offline capabilities and PWA features\r\n */\r\nif ('serviceWorker' in navigator) {\r\n window.addEventListener('load', () => {\r\n navigator.serviceWorker.register('/service-worker.js')\r\n .then(() => {\r\n // Service Worker registered successfully\r\n })\r\n .catch(() => {\r\n // Service Worker registration failed\r\n });\r\n });\r\n}\r\n\r\n/**\r\n * Header toggle menus\r\n */\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n const integration = document.querySelector('.integration');\r\n const integrationToggle = document.querySelector('.integration__toggle');\r\n const extension = document.querySelector('.extension');\r\n const extensionToggle = document.querySelector('.extension__toggle');\r\n\r\n // Function to close all menus\r\n const closeAllMenus = () => {\r\n integration.classList.remove('open');\r\n extension.classList.remove('open');\r\n };\r\n\r\n // Function to close other menus except the one passed\r\n const closeOtherMenus = (exceptMenu) => {\r\n if (exceptMenu !== integration) {\r\n integration.classList.remove('open');\r\n }\r\n if (exceptMenu !== extension) {\r\n extension.classList.remove('open');\r\n }\r\n };\r\n\r\n integrationToggle.addEventListener('click', (e) => {\r\n e.stopPropagation(); // Prevent click from bubbling to document\r\n closeOtherMenus(integration);\r\n integration.classList.toggle('open');\r\n });\r\n\r\n extensionToggle.addEventListener('click', (e) => {\r\n e.stopPropagation(); // Prevent click from bubbling to document\r\n closeOtherMenus(extension);\r\n extension.classList.toggle('open');\r\n });\r\n\r\n // Prevent clicks inside menus from closing them\r\n integration.addEventListener('click', (e) => {\r\n e.stopPropagation();\r\n });\r\n\r\n extension.addEventListener('click', (e) => {\r\n e.stopPropagation();\r\n });\r\n\r\n // Close menus when clicking outside\r\n document.addEventListener('click', () => {\r\n closeAllMenus();\r\n });\r\n});"]}
\ No newline at end of file
diff --git a/app/languages/de-de.php b/app/languages/de-de.php
index 34170ff..d245957 100644
--- a/app/languages/de-de.php
+++ b/app/languages/de-de.php
@@ -4,13 +4,13 @@ return [
'walls_destroyed' => 'Paywall überwunden',
'url_placeholder' => 'Adresse eingegeben (z.B., https://example.com)',
'analyze_button' => 'Analysiere',
+ 'nav_integration' => 'Integrations',
+ 'nav_extension' => 'Install the extension',
'bookmarklet_title' => 'Zu Lesezeichen hinzufügen',
'bookmarklet_description' => 'Ziehe Sie die Schaltfläche unten in Ihre Lesezeichenleiste, um schnell auf {site_name} zuzugreifen:',
'open_in' => 'Öffne {site_name}',
- 'open_source_description' => 'Das ist ein Open Source Projekt das mit ❤️ erstellt wurde!',
'adblocker_warning' => 'Bei Konflikten zwischen {site_name} und Werbeblockern kann ein weißer Bildschirm angezeigt werden. Verwenden Sie den Inkognito-Modus oder deaktivieren Sie die Erweiterung.',
'add_as_app' => 'Als app hinzufügen',
- 'add_as_app_description' => 'Installieren Sie {site_name} als App auf Android mit Chrome, um schnell Links zu teilen:',
'add_as_app_step1' => 'Klicken Sie in Ihrem Browser auf das Menüsymbol (drei Punkte)',
'add_as_app_step2' => 'Wählen Sie "App installieren" oder "Zum Startbildschirm hinzufügen"',
'add_as_app_step3' => 'Klicken Sie für den Schnellzugriff auf „Installieren"',
diff --git a/app/languages/en.php b/app/languages/en.php
index 9f04bf0..bd60da1 100644
--- a/app/languages/en.php
+++ b/app/languages/en.php
@@ -4,13 +4,13 @@ return [
'walls_destroyed' => 'walls destroyed!',
'url_placeholder' => 'Enter URL (e.g., https://example.com)',
'analyze_button' => 'Analyze',
+ 'nav_integration' => 'Integrations',
+ 'nav_extension' => 'Install the extension',
'bookmarklet_title' => 'Add to Bookmarks',
'bookmarklet_description' => 'Drag the button below to your bookmarks bar to quickly access {site_name} on any page:',
'open_in' => 'Open in {site_name}',
- 'open_source_description' => 'This is an open source project made with ❤️!',
'adblocker_warning' => 'Conflicts between {site_name} and ad blockers may cause a white screen. Use incognito mode or disable the extension.',
'add_as_app' => 'Add as app',
- 'add_as_app_description' => 'Install {site_name} as an app on Android with Chrome to quickly share links:',
'add_as_app_step1' => 'In your browser, click the menu icon (three dots)',
'add_as_app_step2' => 'Select "Install app" or "Add to home screen"',
'add_as_app_step3' => 'Click "Install" for quick access',
diff --git a/app/languages/es.php b/app/languages/es.php
index 5907e74..f4cd6b5 100644
--- a/app/languages/es.php
+++ b/app/languages/es.php
@@ -4,13 +4,13 @@ return [
'walls_destroyed' => '¡paredes destruidas!',
'url_placeholder' => 'Ingrese URL (ej: https://ejemplo.com)',
'analyze_button' => 'Analizar',
+ 'nav_integration' => 'Integraciones',
+ 'nav_extension' => 'Instalar la extensión',
'bookmarklet_title' => 'Agregar a Favoritos',
'bookmarklet_description' => 'Arrastra el botón a tu barra de favoritos para acceder rápidamente a {site_name} en cualquier página:',
'open_in' => 'Abrir en {site_name}',
- 'open_source_description' => '¡Este es un proyecto de código abierto hecho con ❤️!',
'adblocker_warning' => 'Los conflictos entre {site_name} y los bloqueadores de anuncios pueden causar una pantalla en blanco. Use el modo incógnito o desactive la extensión.',
'add_as_app' => 'Agregar como aplicación',
- 'add_as_app_description' => 'Instala {site_name} como una aplicación en Android con Chrome para compartir enlaces rápidamente:',
'add_as_app_step1' => 'En su navegador, haga clic en el icono de menú (tres puntos)',
'add_as_app_step2' => 'Seleccione "Instalar aplicación" o "Agregar a la pantalla de inicio"',
'add_as_app_step3' => 'Haga clic en "Instalar" para tener acceso rápido',
diff --git a/app/languages/pt-br.php b/app/languages/pt-br.php
index 67adf60..4526615 100644
--- a/app/languages/pt-br.php
+++ b/app/languages/pt-br.php
@@ -4,13 +4,13 @@ return [
'walls_destroyed' => 'paredes derrubadas!',
'url_placeholder' => 'Digite a URL (ex: https://exemplo.com)',
'analyze_button' => 'Analisar',
+ 'nav_integration' => 'Integrações',
+ 'nav_extension' => 'Instale a extensão',
'bookmarklet_title' => 'Adicione aos Favoritos',
- 'bookmarklet_description' => 'Arraste o botão abaixo para sua barra de favoritos para acessar o {site_name} rapidamente em qualquer página:',
- 'open_in' => 'Abrir no {site_name}',
- 'open_source_description' => 'Este é um projeto de código aberto feito com ❤️!',
+ 'bookmarklet_description' => 'Adicione aos favoritos arrastando o botão abaixo para sua barra de favoritos para acessar o Marreta rapidamente em qualquer página!',
+ 'open_in' => 'Me arrasta',
'adblocker_warning' => 'Conflitos entre o {site_name} e bloqueadores de anúncios podem causar tela branca. Use o modo anônimo ou desative a extensão.',
'add_as_app' => 'Adicionar como aplicativo',
- 'add_as_app_description' => 'Instale o {site_name} como um aplicativo no Android com Chrome para compartilhar links rapidamente:',
'add_as_app_step1' => 'No seu navegador, clique no ícone de menu (três pontos)',
'add_as_app_step2' => 'Selecione "Instalar aplicativo" ou "Adicionar à tela inicial"',
'add_as_app_step3' => 'Clique em "Instalar" para ter acesso rápido',
diff --git a/app/languages/ru-ru.php b/app/languages/ru-ru.php
index 44a9c07..ced2e37 100644
--- a/app/languages/ru-ru.php
+++ b/app/languages/ru-ru.php
@@ -4,13 +4,13 @@ return [
'walls_destroyed' => 'стены разрушены!',
'url_placeholder' => 'Введите URL (например, https://example.com)',
'analyze_button' => 'Анализировать',
+ 'nav_integration' => 'Integrations',
+ 'nav_extension' => 'Install the extension',
'bookmarklet_title' => 'Добавить в закладки',
'bookmarklet_description' => 'Перетащите кнопку ниже на панель закладок, чтобы быстро получить доступ к {site_name} на любой странице:',
'open_in' => 'Открыть в {site_name}',
- 'open_source_description' => 'Это проект с открытым исходным кодом, созданный с ❤️!',
'adblocker_warning' => 'Конфликты между {site_name} и блокировщиками рекламы могут вызывать белый экран. Используйте режим инкогнито или отключите расширение.',
'add_as_app' => 'Добавить как приложение',
- 'add_as_app_description' => 'Установите {site_name} как приложение на Android с Chrome, чтобы быстро делиться ссылками:',
'add_as_app_step1' => 'В браузере нажмите на значок меню (три точки)',
'add_as_app_step2' => 'Выберите "Установить приложение" или "Добавить на главный экран".',
'add_as_app_step3' => 'Нажмите "Установить" для быстрого доступа.',
diff --git a/app/package-lock.json b/app/package-lock.json
index a443e1f..b39f157 100644
--- a/app/package-lock.json
+++ b/app/package-lock.json
@@ -12,46 +12,22 @@
"gulp-clean-css": "^4.3.0",
"gulp-concat": "^2.6.1",
"gulp-dart-sass": "^1.1.0",
- "gulp-fontmin": "^0.7.4",
"gulp-imagemin": "^7.1.0",
"gulp-newer": "^1.4.0",
"gulp-rename": "^2.0.0",
"gulp-sass": "^5.1.0",
"gulp-sourcemaps": "^3.0.0",
"gulp-svgmin": "^4.1.0",
+ "gulp-ttf2eot": "^1.1.2",
+ "gulp-ttf2woff": "^1.1.1",
+ "gulp-ttf2woff2": "^4.0.1",
"gulp-uglify": "^3.0.2",
"gulp-watch": "^5.0.1",
"gulp-webp": "^4.0.1",
"normalize.css": "^8.0.1",
"sass": "^1.64.2",
"sass-colors": "^1.0.14",
- "sass-math": "^1.0.0",
- "ttf2eot": "^3.1.0"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
- "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.25.9",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
+ "sass-math": "^1.0.0"
}
},
"node_modules/@gar/promisify": {
@@ -639,13 +615,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/@types/minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/node": {
"version": "22.10.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.10.tgz",
@@ -656,13 +625,6 @@
"undici-types": "~6.20.0"
}
},
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
- "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/q": {
"version": "1.5.8",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
@@ -671,16 +633,6 @@
"license": "MIT",
"optional": true
},
- "node_modules/@xmldom/xmldom": {
- "version": "0.8.10",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
- "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- }
- },
"node_modules/abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
@@ -980,11 +932,14 @@
}
},
"node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "license": "Python-2.0"
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
},
"node_modules/arr-diff": {
"version": "4.0.0",
@@ -1238,16 +1193,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/arrify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
- "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/assign-symbols": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
@@ -1341,13 +1286,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/b3b": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/b3b/-/b3b-0.0.1.tgz",
- "integrity": "sha512-wWUK79hNEsHN1PTHwHsGYpTNupgaovM39g6374uoIL1gfVSwK2q9flM1DFyvSEYkELRWf5aMGSf7bkGGNSl0Jw==",
- "dev": true,
- "license": "ISC"
- },
"node_modules/bach": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz",
@@ -1961,79 +1899,17 @@
"dev": true,
"license": "MIT"
},
- "node_modules/buffer-to-vinyl": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-to-vinyl/-/buffer-to-vinyl-1.1.0.tgz",
- "integrity": "sha512-t6B4HXJ3YdJ/lXKhK3nlGW1aAvpQH2FMyHh25SmfdYkQAU3/R2MYo4VrY1DlQuZd8zLNOqWPxZFJILRuTkqaEQ==",
+ "node_modules/bufferstreams": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-1.1.3.tgz",
+ "integrity": "sha512-HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "file-type": "^3.1.0",
- "readable-stream": "^2.0.2",
- "uuid": "^2.0.1",
- "vinyl": "^1.0.0"
+ "readable-stream": "^2.0.2"
},
"engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/buffer-to-vinyl/node_modules/clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/buffer-to-vinyl/node_modules/clone-stats": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz",
- "integrity": "sha512-dhUqc57gSMCo6TX85FLfe51eC/s+Im2MLkAgJwfaRRexR2tA4dd3eLEW4L6efzHc2iNorrRRXITifnDLlRrhaA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/buffer-to-vinyl/node_modules/file-type": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz",
- "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/buffer-to-vinyl/node_modules/replace-ext": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz",
- "integrity": "sha512-AFBWBy9EVRTa/LhEcG8QDP3FvpwZqmvN2QFDuJswFeaVhWnZMp8q3E6Zd90SR04PlIwfGdyVjNyLPyen/ek5CQ==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/buffer-to-vinyl/node_modules/uuid": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
- "integrity": "sha512-FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/buffer-to-vinyl/node_modules/vinyl": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz",
- "integrity": "sha512-Ci3wnR2uuSAWFMSglZuB8Z2apBdtOyz8CV7dC6/U1XbltXBC+IuutUkXQISz01P+US2ouBuesSbV6zILZ6BuzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "clone": "^1.0.0",
- "clone-stats": "^0.0.1",
- "replace-ext": "0.0.1"
- },
- "engines": {
- "node": ">= 0.9"
+ "node": ">= 0.10.0"
}
},
"node_modules/cacache": {
@@ -2541,6 +2417,18 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/cloneable-readable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz",
+ "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "process-nextick-args": "^2.0.0",
+ "readable-stream": "^2.3.5"
+ }
+ },
"node_modules/coa": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
@@ -2557,13 +2445,6 @@
"node": ">= 4.0"
}
},
- "node_modules/code-point": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point/-/code-point-1.1.0.tgz",
- "integrity": "sha512-L9JOfOolA/Y/YKVO+WUscMXuYUcHmkleTJkvl1G0XaGFj5JDXl02BobH8avoI/pjWvgOLivs2bizA0N6g8gM9Q==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@@ -2574,16 +2455,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/code-points": {
- "version": "2.0.0-1",
- "resolved": "https://registry.npmjs.org/code-points/-/code-points-2.0.0-1.tgz",
- "integrity": "sha512-PuPoUdSqHY96e+CvEGe0+J9XkEqnQ4o79X+k+PJlZ84sZDoSJ2Q8/1OJT4dqYn8yL5EUxGCq/x2EcLEfvcGqaw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "code-point": "^1.0.1"
- }
- },
"node_modules/collection-map": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz",
@@ -3001,23 +2872,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/decamelize-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
- "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "decamelize": "^1.1.0",
- "map-obj": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/decode-uri-component": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
@@ -3488,13 +3342,6 @@
"node": ">= 0.4"
}
},
- "node_modules/duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/duplexer2": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
@@ -4395,6 +4242,7 @@
}
],
"license": "MIT",
+ "optional": true,
"dependencies": {
"strnum": "^1.0.5"
},
@@ -4611,410 +4459,6 @@
"readable-stream": "^2.3.6"
}
},
- "node_modules/fonteditor-core": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/fonteditor-core/-/fonteditor-core-2.4.1.tgz",
- "integrity": "sha512-nKDDt6kBQGq665tQO5tCRQUClJG/2MAF9YT1eKHl+I4NasdSb6DgXrv/gMjNxjo9NyaVEv9KU9VZxLHMstN1wg==",
- "dev": true,
- "dependencies": {
- "@xmldom/xmldom": "^0.8.3"
- }
- },
- "node_modules/fontmin": {
- "version": "0.9.9",
- "resolved": "https://registry.npmjs.org/fontmin/-/fontmin-0.9.9.tgz",
- "integrity": "sha512-OHMq6/C6FQpedEo+2aXNTrZBAtCJJSy6slYip1gaBtUpwkILkPjDzBKdLu5OgQWIe75lHZHL491/dGJnUi1R2g==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "b3b": "^0.0.1",
- "buffer-to-vinyl": "^1.0.0",
- "code-points": "^2.0.0-1",
- "concat-stream": "^2.0.0",
- "fonteditor-core": "^2.1.5",
- "get-stdin": "^9.0.0",
- "is-otf": "^0.1.2",
- "is-svg": "^4.2.1",
- "is-ttf": "^0.2.2",
- "lodash": "^4.17.10",
- "meow": "^10.1.1",
- "pako": "^2.0.3",
- "replace-ext": "^2.0.0",
- "stream-combiner": "^0.2.1",
- "through2": "^4.0.2",
- "ttf2woff2": "^4.0.1",
- "vinyl-fs": "^3.0.3"
- },
- "bin": {
- "fontmin": "cli.js"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fontmin/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/camelcase-keys": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz",
- "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "camelcase": "^6.3.0",
- "map-obj": "^4.1.0",
- "quick-lru": "^5.1.1",
- "type-fest": "^1.2.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/concat-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz",
- "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==",
- "dev": true,
- "engines": [
- "node >= 6.0"
- ],
- "license": "MIT",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.0.2",
- "typedarray": "^0.0.6"
- }
- },
- "node_modules/fontmin/node_modules/decamelize": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz",
- "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/get-stdin": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
- "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/hosted-git-info": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
- "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fontmin/node_modules/indent-string": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz",
- "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fontmin/node_modules/map-obj": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
- "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/meow": {
- "version": "10.1.5",
- "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz",
- "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/minimist": "^1.2.2",
- "camelcase-keys": "^7.0.0",
- "decamelize": "^5.0.0",
- "decamelize-keys": "^1.1.0",
- "hard-rejection": "^2.1.0",
- "minimist-options": "4.1.0",
- "normalize-package-data": "^3.0.2",
- "read-pkg-up": "^8.0.0",
- "redent": "^4.0.0",
- "trim-newlines": "^4.0.2",
- "type-fest": "^1.2.2",
- "yargs-parser": "^20.2.9"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/normalize-package-data": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
- "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
- "dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "hosted-git-info": "^4.0.1",
- "is-core-module": "^2.5.0",
- "semver": "^7.3.4",
- "validate-npm-package-license": "^3.0.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fontmin/node_modules/pako": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz",
- "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==",
- "dev": true,
- "license": "(MIT AND Zlib)"
- },
- "node_modules/fontmin/node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fontmin/node_modules/read-pkg": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz",
- "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^3.0.2",
- "parse-json": "^5.2.0",
- "type-fest": "^1.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/read-pkg-up": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz",
- "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "find-up": "^5.0.0",
- "read-pkg": "^6.0.0",
- "type-fest": "^1.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fontmin/node_modules/redent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz",
- "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "indent-string": "^5.0.0",
- "strip-indent": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/replace-ext": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz",
- "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/fontmin/node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fontmin/node_modules/strip-indent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz",
- "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "min-indent": "^1.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/through2": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz",
- "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readable-stream": "3"
- }
- },
- "node_modules/fontmin/node_modules/trim-newlines": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz",
- "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fontmin/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "dev": true,
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/for-each": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.4.tgz",
@@ -5913,118 +5357,6 @@
"xtend": "~4.0.1"
}
},
- "node_modules/gulp-fontmin": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/gulp-fontmin/-/gulp-fontmin-0.7.4.tgz",
- "integrity": "sha512-COfLJ1Gj86FSTecaCUk+52Th9r8n+BEUJ2/3gXZbiuI9VpxA2RuedX4mgZVTdR7fp7X2TCS9p/YofG9AndbtJw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "chalk": "^1.0.0",
- "fontmin": "^0.9.3",
- "gulp-util": "^3.0.0",
- "object-assign": "^4.0.1",
- "pretty-bytes": "^3.0.1",
- "through2-concurrent": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gulp-fontmin/node_modules/ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gulp-fontmin/node_modules/ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gulp-fontmin/node_modules/chalk": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^2.2.1",
- "escape-string-regexp": "^1.0.2",
- "has-ansi": "^2.0.0",
- "strip-ansi": "^3.0.0",
- "supports-color": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gulp-fontmin/node_modules/pretty-bytes": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-3.0.1.tgz",
- "integrity": "sha512-eb7ZAeUTgfh294cElcu51w+OTRp/6ItW758LjwJSK72LDevcuJn0P4eD71PLMDGPwwatXmAmYHTkzvpKlJE3ow==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gulp-fontmin/node_modules/strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/gulp-fontmin/node_modules/supports-color": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/gulp-fontmin/node_modules/through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "node_modules/gulp-fontmin/node_modules/through2-concurrent": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/through2-concurrent/-/through2-concurrent-1.1.1.tgz",
- "integrity": "sha512-lh37myB/TFr0c90XImVaGiCVr95c8vAGc/zRVXdqU6VVfL3KpLBL2zHBVCzfaVbM8Pe8BJjZoTEzOpW5oOFR/Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "through2": "^2.0.0"
- }
- },
"node_modules/gulp-imagemin": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/gulp-imagemin/-/gulp-imagemin-7.1.0.tgz",
@@ -6327,6 +5659,93 @@
"svgo": "^2.7.0"
}
},
+ "node_modules/gulp-ttf2eot": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/gulp-ttf2eot/-/gulp-ttf2eot-1.1.2.tgz",
+ "integrity": "sha512-B2NwwG+QVMF6ETzeXwZHx6MeYEx0oHguIj0ZjPhqtKM3iXuDOrYbT2054q73cTI6hn2GMNAQWy11GjZM+LUxRg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bufferstreams": "^1.1.0",
+ "gulp-util": "^3.0.7",
+ "readable-stream": "^2.0.4",
+ "ttf2eot": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/gulp-ttf2woff": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/gulp-ttf2woff/-/gulp-ttf2woff-1.1.1.tgz",
+ "integrity": "sha512-l230Pv3CzE9OND8GlXyrdLvBjrfS2VCVs8g0+L6DaglqnW7aZFvZdeDH5VFe0zfp16n/zNPf4HBNfNStn9iXDA==",
+ "dev": true,
+ "dependencies": {
+ "bufferstreams": "^1.0.2",
+ "gulp-util": "^3.0.6",
+ "readable-stream": "^2.0.1",
+ "ttf2woff": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/gulp-ttf2woff2": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/gulp-ttf2woff2/-/gulp-ttf2woff2-4.0.1.tgz",
+ "integrity": "sha512-VkeQaXqTud/e4mDLIuWzRbR7+1QGkmmpRYek/cFZTe7pwsQJshisqSwPwxM7CBrypD7zK8WEH3ktNzFSsyanVg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bufferstreams": "^3.0.0",
+ "plugin-error": "^1.0.1",
+ "readable-stream": "^3.6.0",
+ "replace-ext": "^2.0.0",
+ "ttf2woff2": "^4.0.1",
+ "vinyl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/gulp-ttf2woff2/node_modules/bufferstreams": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bufferstreams/-/bufferstreams-3.0.0.tgz",
+ "integrity": "sha512-Qg0ggJUWJq90vtg4lDsGN9CDWvzBMQxhiEkSOD/sJfYt6BLect3eV1/S6K7SCSKJ34n60rf6U5eUPmQENVE4UA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "^3.4.0"
+ },
+ "engines": {
+ "node": ">=8.12.0"
+ }
+ },
+ "node_modules/gulp-ttf2woff2/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/gulp-ttf2woff2/node_modules/replace-ext": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz",
+ "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
"node_modules/gulp-uglify": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz",
@@ -6766,16 +6185,6 @@
"node": ">= 0.10"
}
},
- "node_modules/hard-rejection": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
- "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
@@ -7517,6 +6926,13 @@
"node": ">= 12"
}
},
+ "node_modules/ip-address/node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
"node_modules/irregular-plurals": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-2.0.0.tgz",
@@ -8014,19 +7430,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-otf": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/is-otf/-/is-otf-0.1.2.tgz",
- "integrity": "sha512-0usgFT/986IQ0zFN4iQUKebPpHNAwA34f8qQC+Y8L1R379odRzS4pc1GCqBRL6P6AlGUoK/0/GYY6AYgD0anRA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "b3b": "0.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
@@ -8193,6 +7596,7 @@
"integrity": "sha512-v+AgVwiK5DsGtT9ng+m4mClp6zDAmwrW8nZi6Gg15qzvBnRWWdfWA1TGaXyCDnWq5g5asofIgMVl3PjKxvk1ug==",
"dev": true,
"license": "MIT",
+ "optional": true,
"dependencies": {
"fast-xml-parser": "^4.1.3"
},
@@ -8222,19 +7626,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-ttf": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/is-ttf/-/is-ttf-0.2.2.tgz",
- "integrity": "sha512-0NWCiYnyH8gvyBkLcnG8nBBgz6ZqFqgSS37jTTQKGF/y7Wrf6KKr9EmW7ExcxFoE0WU1mKcnMElRf9QOUNxAmQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "b3b": "0.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/is-typed-array": {
"version": "1.1.15",
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
@@ -8379,13 +7770,6 @@
"node": ">= 4"
}
},
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
@@ -8401,25 +7785,6 @@
"js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/js-yaml/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/js-yaml/node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "dev": true,
- "license": "BSD-3-Clause",
- "optional": true
- },
"node_modules/jsbn": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
@@ -8434,13 +7799,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
@@ -8578,13 +7936,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
@@ -8612,29 +7963,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "dev": true,
- "license": "MIT"
- },
"node_modules/lodash._basecopy": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz",
@@ -9121,6 +8449,13 @@
"node": ">= 8"
}
},
+ "node_modules/microbuffer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/microbuffer/-/microbuffer-1.0.0.tgz",
+ "integrity": "sha512-O/SUXauVN4x6RaEJFqSPcXNtLFL+QzJHKZlyDVYFwcDDRVca3Fa/37QXXC+4zAGGa4YhHrHxKXuuHvLDIQECtA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/micromatch": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -9227,16 +8562,6 @@
"node": ">=4"
}
},
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -9260,31 +8585,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/minimist-options": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
- "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "arrify": "^1.0.1",
- "is-plain-obj": "^1.1.0",
- "kind-of": "^6.0.3"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/minimist-options/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/minipass": {
"version": "3.3.6",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
@@ -10235,38 +9535,6 @@
"node": ">=4"
}
},
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/p-map": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
@@ -10332,6 +9600,13 @@
"node": ">=4"
}
},
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true,
+ "license": "(MIT AND Zlib)"
+ },
"node_modules/parse-filepath": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
@@ -10852,19 +10127,6 @@
],
"license": "MIT"
},
- "node_modules/quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/randomatic": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz",
@@ -12209,9 +11471,9 @@
}
},
"node_modules/sprintf-js": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
- "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true,
"license": "BSD-3-Clause"
},
@@ -12362,17 +11624,6 @@
"node": ">= 0.4"
}
},
- "node_modules/stream-combiner": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz",
- "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "duplexer": "~0.1.1",
- "through": "~2.3.4"
- }
- },
"node_modules/stream-exhaust": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz",
@@ -12629,7 +11880,8 @@
"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
"integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "optional": true
},
"node_modules/supports-color": {
"version": "5.5.0",
@@ -13030,18 +12282,34 @@
}
},
"node_modules/ttf2eot": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/ttf2eot/-/ttf2eot-3.1.0.tgz",
- "integrity": "sha512-aHTbcYosNHVqb2Qtt9Xfta77ae/5y0VfdwNLUS6sGBeGr22cX2JDMo/i5h3uuOf+FAD3akYOr17+fYd5NK8aXw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ttf2eot/-/ttf2eot-2.0.0.tgz",
+ "integrity": "sha512-U56aG2Ylw7psLOmakjemAzmpqVgeadwENg9oaDjaZG5NYX4WB6+7h74bNPcc+0BXsoU5A/XWiHabDXyzFOmsxQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "argparse": "^2.0.1"
+ "argparse": "^1.0.6",
+ "microbuffer": "^1.0.0"
},
"bin": {
"ttf2eot": "ttf2eot.js"
}
},
+ "node_modules/ttf2woff": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ttf2woff/-/ttf2woff-2.0.2.tgz",
+ "integrity": "sha512-X68badwBjAy/+itU49scLjXUL094up+rHuYk+YAOTTBYSUMOmLZ7VyhZJuqQESj1gnyLAC2/5V8Euv+mExmyPA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.6",
+ "microbuffer": "^1.0.0",
+ "pako": "^1.0.0"
+ },
+ "bin": {
+ "ttf2woff": "ttf2woff.js"
+ }
+ },
"node_modules/ttf2woff2": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/ttf2woff2/-/ttf2woff2-4.0.5.tgz",
@@ -13110,19 +12378,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
- "dev": true,
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/typed-array-buffer": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
@@ -13718,18 +12973,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/vinyl/node_modules/cloneable-readable": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz",
- "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.1",
- "process-nextick-args": "^2.0.0",
- "readable-stream": "^2.3.5"
- }
- },
"node_modules/which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -14070,19 +13313,6 @@
"buffer-crc32": "~0.2.3",
"fd-slicer": "~1.1.0"
}
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
}
}
}
diff --git a/app/package.json b/app/package.json
index 0e5bc73..a733f57 100644
--- a/app/package.json
+++ b/app/package.json
@@ -10,14 +10,15 @@
"gulp-clean-css": "^4.3.0",
"gulp-concat": "^2.6.1",
"gulp-dart-sass": "^1.1.0",
- "gulp-fontmin": "^0.7.4",
"gulp-imagemin": "^7.1.0",
"gulp-newer": "^1.4.0",
"gulp-rename": "^2.0.0",
"gulp-sass": "^5.1.0",
"gulp-sourcemaps": "^3.0.0",
"gulp-svgmin": "^4.1.0",
- "ttf2eot": "^3.1.0",
+ "gulp-ttf2eot": "^1.1.2",
+ "gulp-ttf2woff": "^1.1.1",
+ "gulp-ttf2woff2": "^4.0.1",
"gulp-uglify": "^3.0.2",
"gulp-watch": "^5.0.1",
"gulp-webp": "^4.0.1",
diff --git a/app/src/views/home.php b/app/src/views/home.php
index 9782840..45ad1f1 100644
--- a/app/src/views/home.php
+++ b/app/src/views/home.php
@@ -5,149 +5,138 @@
- - - - -
-+ +